Menormalkan Data Untuk Range Sempit

Beberapa literatur, seperti (Hagan, M. T., Demuth, H. B., & Beale 1997) merekomendasikan penggunakan normal Euclidis (Euclidean) untuk menormalkan data agar hanya berada pada rang [0,1]. Alasannya adalah keortogonalan matriks konversi yang mempermudah Jaringan Syaraf Tiruan (JST) dalam proses pelatihan (Training). Postingan kali ini memperkenalkan teknik yang sering digunakan pada proses peramalan (Forecasting) dengan rentang data tertentu yang sempit, misalnya range [0.2,0.9]. Caranya adalah dengan menggunakan rumusan di bawah ini (Siang 2009):

dengan b dan a adalah data maksimum dan minimum. x’ adalah hasil konversi dari harga awal x. Perhatikan ketika x adalah data maksimum maka x’ akan berharga 0.7+0.2 sementara jika sebaliknya, x data minimum, maka 0 + 0.2 yang cocok dengan range dari 0.2 hingga 0.9. Tetapi ketika ingin dipresentasikan kembali hasil peramalan ke nilai real-nya perlu konversi kembali dengan formula:

Entah mengapa saya cenderung menggunakan normal Euclidis (fungsi normalize atau dengan memanfaatkan norm jika tidak ada fungsi normalize). Untuk versi 2013 sepertinya sudah ada fungsi normalize. Berikut tampilan Matlab jika ada fungsi yang bersangkutan. Semoga bermanfaat.

  • >> help normalize
  • — help for dfilt.normalize —
  • normalize Normalize coefficients between -1 and 1.
  • G = normalize(Hd) normalizes the feed-forward coefficients between -1
  • and 1 and returns the gain G due to normalization. Subsequent calls to
  • normalize will not change the feed-forward coefficients and G will
  • always return the gain used in the first normalization.

 

  • See also dfilt.denormalize.
  • Copyright 1988-2004 The MathWorks, Inc.

Referensi

Hagan, M. T., Demuth, H. B., & Beale, M., 1997. Neural Network Design, Boston: PWS Publishing Co.

Siang, J.J., 2009. Jaringan Syaraf Tiruan dan Pemrogramannya Menggunakan Matlab, Yogyakarta: Penerbit Andi.

 

Iklan

5 respons untuk ‘Menormalkan Data Untuk Range Sempit

  1. selamat sore mas
    1 bagaimana cara menggunakan “mapstd” untuk standarisasi data?
    2 Bagaimana menggunakan fungsi aktivasi ReLu?

    terima kasih

    1. mapstd menormalkan data menjadi rata-rata (default=0) dengan standar deviasi, sementara ReLu mengkonversi bilangan negatif menjadi nol.

  2. Selamat pagi mas
    Saya menormalisasi data dengan fungsi mapminmax pada matlab. Range normalisasi yang saya berikan [-1,1]. Saya membagi data training dan testing 70:30. Ketika saya running modelnya, hasilnya ternyata normalisasinya tidak berada pada range [-1,1].
    Sebagai contoh hasil testingnya nilai paling kecil -1,04.. yang paling besar biasa mencapai 1,6.

    Apakah fungsinya memang tidak menghasilkan range -1 sampai 1?
    Bagaimana solusinya?

    1. running model apa? misal JST, dengan fungsi tansig di semua neuron, biasanya ga keluar dari range, tapi kalo ada fungsi linear (purelin) maka ada kemungkinan membesar/mengecil melewati range.

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.