Prediksi dengan Jaringan Syaraf Tiruan (Intervention Indicators)

Postingan ini merupakan kelanjutan dari diskusi kita tentang prediksi dengan jaringan syaraf tiruan, dasar-dasar, dan latihan awal time series tanpa variabel intervention. Berikutnya mulai masuk ke latihan ke terapannya dengan data real, dalam hal ini penggunaan lahan (landuse). Mengingat banyak pertanyaan mengenai kenapa hasil proyeksi tidak bisa membesar dan diduga hanya berada di harga antara maximum dan minimum saat pembelajaran jaringan syaraf tiruan, atau banyak hasil proyeksi yang stagnan di harga tertentu dengan besar yang sama. Berikut ini adalah data landuse untuk latihan, dengan intervention indikatornya proyeksi populasi (lihat situs bekasi ini sebagai contoh proyeksi di chart bagian bawah situs).

Tugas kita adalah mengisi kolom tanda tanya “?” hingga tahun 2030 dengan data yang tersedia hanya dari tahun 2003. Berikut langkah-langkah yang harus dibuat.

Menyiapkan data training

Cara paling gampang adalah melakukan training tiap landuse type dilanjutkan dengan meramu JST yang akan dilatih. Di sini kita bisa menentukan dua atau tiga masukan JST, sebaiknya jumlah masukan dan jumlah data sebanyak mungkin. Perhatikan jika kita membuat jumlah masukan sebanyak empat (th 2003, 2006, 2009, dan 2012) dengan target pelatihan 2015 maka datanya tentu saja hanya satu. Tetapi jika menggunakan tiga masukan, datanya ada dua set, yaitu set pertama (data: 2003, 2006, dan 2009, target: 2012) dan set kedua (data: 2006, 2009, dan 2012, target: 2015). Anda juga bisa membuat tiga set data pelatihan untuk jumlah masukan dua, tetapi tentu saja time series lebih banyak series-nya lebih baik, maka kita pilih jumlah masukan tiga tahun dan ditambah satu masukan dari proyeksi ke tahun yang akan diramal. Jadi total masukannya empat, tiga time series dan satu variabel intervensi.

Jadi data untuk misalnya tipe lahan commercial ada dua data yang kemudian dilatih membentuk satu network, katakanlah network1. Tipe lahan kedua dengan data medical dilatih dan menghasilkan network2 dan seterusnya hingga network6. Keenam network itu kemudian digunakan untuk memprediksi jumlah lahan hingga tahun 2030. Berikutnya kita mulai membuat JST-nya.

Meramu JST

Toolbox Matlab yang tersedia adalah nntool dan nftool. Semuanya saya coba ada kelemahan dan kelebihannya. Nntool sepertinya lebih fleksibel karena dapat merubah jenis transfer function (logsig, tansig, dan purelin) sementara nftool hanya dibatasi hanya satu hidden layer dengan dua transfer function berturut-turut logsig dan purelin. Di sinilah masalah sering terjadi jika kita tidak melakukan setingan ini. Jika kita memilih transfer function logsig logsig, maka kita akan memperoleh harga hanya maximum satu.

Tentu saja jika meramal proyeksi ke depan yang membesar terus, akan mengalami kesulitan jika tidak disertai variabel intervention. Pemilihan transfer function juga bisa berdasarkan dengan trend dan bentuk data pelatihan, jika membesar terus atau mengecil terus sebaiknya menggunakan pureline, alias garis lurus. Di sini maksudnya bukan bentuk prediksinya garis lurus, tapi bentuk keluaran dari transfer function di tiap-tiap neuron.

Jika anda yang suka ngoding, ada baiknya membuat kode sendiri untuk pelatihan JST karena saya sendiri malas menggunakan nntool karena harus menggunakan mouse untuk input data dan target dilanjutkan dengan membuat network baru, training dan seterusnya. Tetapi dengan script kita bisa langsung memanggil data dan melakukan training secara otomatis tanpa memainkan mouse, alias sekali jalan.

Selanjutnya lakukan training network1 hingga network6 baik dengan script maupun dengan toolbox. Tentu saja jangan lupa lakukan testing dengan data pelatihan, pastikan akurat, karena jika testing dengan data pelatihan saja sudah salah maka tentu saja dengan data sesungguhnya jadi meragukan. Jika diminta menguji dengan cross validation, maka Anda harus membuat pengelompokan data2 dimana data yang digunakan untuk training tidak boleh digunakan untuk testing (supaya adil maksudnya).

Proyeksi (Simulation)

Langkah terakhir adalah melakukan proyeksi, atau istilah JST – nya simulasi. Fungsi yang digunakan adalah fungsi “sim“. Proyeksi bisa dilakukan satu persatu, misal 2009, 2012,2015 kemudian menghasilkan ramalan di 2018, dilanjutkan dengan bergeser ke kanan satu-satu. Lihat situs ini jika ingin detilnya.

Istilahnya adalah “window” untuk tiap set training. Satu window itu untuk satu set data training yang ketika training digabung menjadi satu. Untuk testing juga dengan window, dimana hasil proyeksi digunakan lagi untuk proyeksi tahun-tahun berikutnya, atau Anda bisa menggunakan script untuk menggenerate tahun 2018 hingga 2030. Seperti ini kira-kira hasilnya. Oiya, perlu diketahui data ini adalah normal euclidean dari data sebenarnya. Untuk mengetahui data sebenarnya tinggal mengalikan data tersebut dengan normal euclidean data aslinya.

Tentu saja nomor 6 di tahun 2030 tidak bisa digunakan karena tidak ada lahan yang minus. Di sini nol mungkin wajar dimana sudah tidak ada lagi pemukiman padat. Benarkah?

 

 

 

 

 

Iklan

22 respons untuk ‘Prediksi dengan Jaringan Syaraf Tiruan (Intervention Indicators)

  1. Pak, apa boleh saya minta dijelaskan script kodingan untuk prediksi jst tanpa menggunakan nntool dengan mouse serta tutorialnya.. Terima kasih

  2. Assalamu’alaikum, Pak. ada kerancuan pemahaman sy tentang prediction menggunakan metode Backpropagation, dari beberapa jurnal yg sy baca ada yang membahas hanya sebatas error dari fungsi dan akurasi sedangkan judulnya adalah prediksi jumlah kecelakaan… dan ada yang menggabungkan dengan time series untuk mendapatkan jumlah kecelakaan untuk tahun berikutnya. Apakah kedua metode tersebut dapat kita gabungkan, pak? Terima kasih pak 🙂

    1. ya, harusnya sebelum diterapkan seperti time series (prediksi kecelakaan), dipastikan terlebih dahulu error dan akurasi (validasi) karena jika errornya terlalu besar dipastikan prediksi kurang akurat. misal sekarang tahun 2015 sudah diketahui jlh kecelakaan, jst dgn data dari thn misal 2000 dibuat untuk memprediksi tahun 2015, antara riil dgn tidak dibandingkan, jika errornya kecil maka bisa digunakan untuk memprediksi tahun 2016 dst.

  3. pak tolong dong share tentang cara menggunakan matlab 6.1 untuk prediksi kelayakan kredit,,,,nol banget ni,,,tolong ya pak

    1. kumpulkan dahulu data yang lalu kredit yang diterima dan ditolak untuk dilatih dengan JST agar diperoleh jaringan yang dapat memprediksi layak atau tidaknya kredit yang disalurkan untuk data baru/yang akan datang. kalau ada datanya, nanti saya posting caranya.

      1. kalau pake matlab 6 bisa gak pak,,,ini sudah ada datanya saya hanya pakai sekitar 60 nasabah,,,karena sifatnya rahasia,,,bisa kasih saya contohnya pak,,,tolong terimaksih,,,

      2. ya itu, contoh excel di atas yg cuma 5 deret aja bisa, tapi bagusnya banyak. yg penting bedakan forecasting dengan predicting

  4. Om Rahmadya ..
    tolong bikin contoh peramalan dengan narxnet .

    saya stack ngutak ngatik data saya ada 15 elemen input dan 1 elemen output masing masing 100 sample , malah yang keluar hasil prediksi nya sama dengan yg lalu :((

    biar gampang belajar nya kita coba test nya pake data dari matlab nya aja ya om biar sama an data nya .. pake “load pollution_dataset”

    berikut request nya :
    1. Prediksi 1 step atau beberapa step kedepan dengan narxnet
    2. Ploting graph hasil prediksi dan sebelum prediksi jadi 1
    ———-
    saya juga ada pertanyaan seputar NN nih om :

    1. apakah jika ada data baru yang akan kita proses baiknya kita train ulang network dengan data test baru atau cukup pake net yang sudah di latih sebelum nya ?

    2. menurut om untuk tipe data dengan banyak elemen input dan single elemen output bagusan pake fitting atau pake model time series prediksi nya ?

    Terimakasih sebelum nya om.

  5. Pak mau tanya nih, cara penentuan nilai bobot node hidden layer dan bobot output itu ada standarisasiny tidak? Soalny klo baca baca di jurnal nilainy di isikan dengan bilangan acak kecil. Bilangan acak kecil itu apa kita mengisikan sembarang atau ada rumusnya yaa.. mohon pencerahannya pak.

  6. pak mau nanya pak kalau prediksi penyakit terbanayak, mengambil data kunjungan 5 penyakit terbanyak 5 tahun terakhir apaa saja tahapan yang harus saya lakukan pak? maaf sebelumnya saya masih awam dengan jst dan matlab. bgaimana data testing, traning, target, dan lain2nya pak? mohon pencerahanya pak
    makasih sebelumnya pak 🙂

  7. Pak mau nanya, utk prediksi beban puncak saya menggunakan input berupa data historis beban puncak dan jumlah penduduk 7 tahun ke belakang. Pada saat training menggunakan data 5 tahun sudah berhasil pak, namun pada saat di testing menggunakan 2 tahun berikutnya itu sangat jauh dari target pak. Itu bagaimana ya pak ? mungkin bapak tau solusinya, terimakasih

    1. saya mengalami masalah serupa ketika menggunakan membership function tansig di output. Jadi prediksi tidak bisa melebihi data training inputan. Setelah mengganti dengan PURELIN bisa memprediksi nilai yg lebih dari data training inputan (bisa memprediksi nilai yang membesar terus).

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.