Buku belajar machine learning dengan matlab -Metode Peramalan Mengunakan Fuzzy Time Series Chen

Print Friendly, PDF & Email

Sinopsis

Forecasting secara umum banyak digunakan pada Data Series atau domain waktu. Banyak sekali metode forecasting yang digunakan dengan segala asumsi yang harus dipenuhi jika menggunakan metode tertentu. Pembahasan kali ini kalian akan mempelajari Matlab- Metode Peramalan Mengunakan Fuzzy Time Series Chen yang sangat mudah dipahami, kalian bisa koq menggunakan Excel dalam melakukan perhitungannya, cuman karena di Matlab lebih mudah asalkan kalian telah pelajari Dasar-Dasar Pemrograman Matlab pada blog ini. Kalian bisa mendapatkan kode utuh secara gratis dengan cara subcribed blog ini ya! ataupun berkirim surel ke sini

 

DATASET

Dataset yang akan digunakan yaitu terdiri dari data 16 tahun jumlah penduduk

Tahapan-tahapan dalam memprediksi dengan menggunakan metode Fuzzy Time Series (FTS) Model Chen adalah sebagai berikut:

1.    Pembentukan himpunan semesta pembicaraan Universes of Discourse (U)

U = [Dmin – D1, Dmax + D2]

dengan D1 dan D2 adalah nilai konstanta.

2.    Menentukan interval

Membagi himpunan semesta menjadi beberapa interval dengan jarak yang  sama. Untuk mengetahui banyak interval dapat mempergunakan rumus Sturges berikut:

1 + 3,322 log10 (n)

dengan,

n : adalah jumlah data observasi

sehingga membentuk sejumlah nilai linguistic untuk mempresentasikan suatu himpunan fuzzy pada interval-interval yang terbentuk dari himpunan semesta

(U).

U = {U1,U2, U3, ….. , Un}

dengan,

U : himpunan semesta

Ui : Besarnya jarak pada U, untuk I = 1,2,….,n

3.    Menentukan Fuzzy Logic Relationship (FLR) dan Fuzzy Logic Relationship Group (FLRG).

Menentukan FLR dan membuat grup sesuai dengan waktu. Contoh jika FLR berbentuk A1 -> A2, A1 -> A1, A1 -> A3, A1 -> A1, maka FLRG yang terbentuk adalah A1 -> A1, A2, A3

4.    Melakukan proses Defuzzifikasi dan melakukan perhitungan nilai prediksi.

5.    Hitung Tingkat error prediksi dengan menggunakan AFER (Average Forecasting Error Rate)

Selain menggunakan MSE, dalam penelitian ini juga menggunakan perhitungan AFER untuk menghitung tingkat kesalahan. AFER merupakan salah satu perhitungan tingkat error yang dilakukan dengan cara menyatakan persentase selisih antara data aktual dengan data hasil prediksi. Semakin kecil nilai AFER, maka tingkat akurasi yang diberikan untuk prediksi semakin baik.

#HASIL DAN PEMBAHASAN

Untuk data diatas, didapatkan d_min = 174706 ; d_max = 285967 ; sedangkan untuk d1= 3; d2 = 3. Untuk penentuan d1 dan d2 adalah bebas dan bilangan positif.

data
      174706
      178125
      191990
      201263
      210984
      219351
      225249
      231121
      240553
      250367
      253178
      259913
      268022
      274089
      280109
      285967

Mencari Nilai Himpunan Semesta

d1 =

     3


d2 =

     3


d_min =

      174706


d_max =

      285967

Menentukan Universe of discourse (semesta pembicaraan)

Untuk menghitung himpunan semesta pembicaraan (universe of distance) dengan menggunakan rumus:

U=[174706 – 3, 285967 + 3]

Sehingga dapat didefinisikan U=[174703, 285970]

U =

      174703      285970

Menentukan jumlah dan lebar interval

Pada perhitungan untuk menentukan panjang interval beserta lebar interval

menggunakan aturan struges.

Jumlah Interval = 1 + (3.322 * log10(16)) = 5

Setelah jumlah interval di dapat, maka akan dicari lebar interval untuk

membagi data menjadi jumlah interval yang sama.

Lebar Interval = (285967 – 174706) / 5 = 22252

Jumlah Interval

jumlah_interval =

     5

Lebar Interval

lebar_interval =

        22252

Setelah jumlah beserta lebar interval didapat, langkah selanjutnya adalah

membagi data berdasarkan jumlah dan lebar interval. Diketahui jumlah interval

adalah 5 dan lebar interval adalah 22252 maka hasil yang di dapat terdapat dibawah ini

universe of discourse
U1: 174703 - 196958 nilai tengah A1: 185831
U2: 196958 - 219210 nilai tengah A2: 208085
U3: 219210 - 241463 nilai tengah A3: 230337
U4: 241463 - 263715 nilai tengah A4: 252589
U5: 263715 - 285967 nilai tengah A5: 274841

Menentukan Fuzzy Logic Relationship (FLR)

Misalkan 174706 akan masuk rentang di nilai U1 sehingga Fuzzifikasi A1

Tabel Hasil Fuzzifikasi
1.  174706: A1
2.  178125: A1
3.  191990: A1
4.  201263: A2
5.  210984: A2
6.  219351: A3
7.  225249: A3
8.  231121: A3
9.  240553: A3
10.  250367: A4
11.  253178: A4
12.  259913: A4
13.  268022: A5
14.  274089: A5
15.  280109: A5
16.  285967: A5

Saling dipasangkan dengan data selanjutnya untuk membentuk FLR

Tabel Fuzzy Logic Relationship (FLR)
1.  174706: A1-> A1
2.  178125: A1-> A1
3.  191990: A1-> A2
4.  201263: A2-> A2
5.  210984: A2-> A3
6.  219351: A3-> A3
7.  225249: A3-> A3
8.  231121: A3-> A3
9.  240553: A3-> A4
10.  250367: A4-> A4
11.  253178: A4-> A4
12.  259913: A4-> A5
13.  268022: A5-> A5
14.  274089: A5-> A5
15.  280109: A5-> A5

Membuat Fuzzy Logic Relationship Group (FLRG)

Cara kerjanya seperti contoh berikut

Maka cari pasangan yang unik (bagian kiri dengan bagian kanan) yaitu ada 5 fuzzy set dengan pasangan yang unik berikut (yang sama dihilangkan, saya kasih tanda tuh diatas)

A1 -> A1

A2 -> A3

A3 -> A1

A4 -> A4, A2

A5 -> A5

Sehingga untuk kasus kita, akan terbentuk berikut

Fuzzy Logic Relationship Group (FLRG)
Current State A1->
                  A1
                  A2
Current State A2->
                  A2
                  A3
Current State A3->
                  A3
                  A4
Current State A4->
                  A4
                  A5
Current State A5->
                  A5

Misalkan A1 mempunyai anggota average (A1,A2) yaitu average(185831, 208085) = 196958

Hasil Defuzifikasi
Current State A1 forecasted 196958
Current State A2 forecasted 219211
Current State A3 forecasted 241463
Current State A4 forecasted 263715
Current State A5 forecasted 274841

Sehingga untuk forecasting menjadi berikut

forecasting
Hasil Forecasting
1.   174706 = 0
2.   178125 = 196958
3.   191990 = 196958
4.   201263 = 196958
5.   210984 = 219211
6.   219351 = 219211
7.   225249 = 241463
8.   231121 = 241463
9.   240553 = 241463
10.   250367 = 241463
11.   253178 = 263715
12.   259913 = 263715
13.   268022 = 263715
14.   274089 = 274841
15.   280109 = 274841
16.   285967 = 274841
Prediksi untuk data ke 17 = 274841

Artinya masukan input tahun 2000 sebesar 174706 akan memprediksi tahun 2001 yaitu 196958 dengan nilai aktual tahun 2001 sebesar 178125. Sedangkan untuk tahun 2015 dengan jumlah penduduk 285967  maka untuk prediksi tahun 2016 sebesar 274841.

Bagaimana untuk memprediksi data asing?

Maka proses training diatas hal terpenting adalah data U dan A Current State nya

universe of discourse
U1: 174703 - 196958 nilai tengah A1: 185831
U2: 196958 - 219210 nilai tengah A2: 208085
U3: 219210 - 241463 nilai tengah A3: 230337
U4: 241463 - 263715 nilai tengah A4: 252589
U5: 263715 - 285967 nilai tengah A5: 274841

serta

Hasil Defuzifikasi
Current State A1 forecasted 196958
Current State A2 forecasted 219211
Current State A3 forecasted 241463
Current State A4 forecasted 263715
Current State A5 forecasted 274841

Misalkan kita memasukan pada tahun 2020 data jumlah penduduk sebesar 250000, maka data penduduk tahun 2021?

Nilai hasil pelatihan
Nilai U
      174703      196958
      196958      219210
      219210      241463
      241463      263715
      263715      285967

Nilai A Current State
A1. 196958
A2. 219211
A3. 241463
A4. 263715
A5. 274841

angka =

      250000

Prediksi
250000: A4 -> 263715

Penulis menggunakan matlab untuk mempermudah proeses diatas, anda pun bisa menggunakan excel bila perlu, kalian bisa hubungi kesini kalau ingin meminta source codenya

Referensi:

https://medium.com/@16611030/fuzzy-time-series-dengan-model-cheng-untuk-pediksi-hasil-produksi-susu-sapi-dengan-menggunakan-999766d4a346

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *