Jumat, 28 Mei 2010

JST Memprediksi






TugasTanggal Tugas Tanggal Selesai
3
25- 03- 201030-03- 2010













NAMANPMTUGASNILAI
Agus Zulhendri
0855 031 003Mengauplod ke blog

Sigiara Sinaga
0815 031 091Menyeleksi file uploadan
Arya wiguna b
0815 031 0Mengedit postingan blog
Ayub Luhung
0815 031 0Mencari data dan upload file
Ferdinand
0815 031 0Mencari data dan upload file

Metode Ranfis adalah suatu metode yang dalam melakukan penyetelan aturan digunakan algoritma pembelajaran terhadap sekumpulan data yang memungkinkan juga aturan-aturan untuk beradaptasi. Sistem ini menggunakan sinergi metode dari neuro dan fuzzy, dengan menambahkan dimensi lain pada kombinasinya yaitu Rough Set yang berdasarkan prinsip klasifikasi dalam suatu rangkaian hybrid. Rangkaian Jaringan Syaraf Tiruan berbasis neuron rough memiliki kemampuan learning berdasarkan data-data masukan, dan membantu sistem fuzzy dalam menentukan rule yang terbaik dalam memprediksi data, sedangkan rough set sendiri akan mengklasifikasikan data acak yang melewatinya. Metode RANFIS ini digunakan untuk menemukan suatu pola perubahan tertentu, dan akan selalu belajar dari kesalahan atau error sebelumnya, sehingga akan didapatkan nilai akurasi yang sangat baik.

Arsitektur jaringan RANFIS yang menggunakan 5 layer dan 15 neuron.

Pada bagian analisa sistem, paper ini menyajikan analisa data dengan proses peramalan menggunakan input data saham secara time series yang tersimpan pada file *.xls, yang kemudian diubah menjadi matriks inputan.
rancangan sistem dan jaringan ranfis yang digunakan seperti diagram blok di bawah ini.


Data yang dinormalisasi digunakan sebagai neuron inputan pada layer masukan dan sebagai neuron output pada layer keluaran. Paper ini menggunakan arsitektur rough adaptive neuro-fuzzy inference system yang terdiri dari input layer, hidden layer (3 layer) dan output layer. Inputnya berupa data time series yaitu harga penutupan indeks harga saham. Sedangkan targetnya adalah harga penutupan besok (t+1). Arsitektur sistem ini terdiri dari 5 layer : MF neuron (membership function) pada input layer, neuron rough yang melakukan proses AND, normalisasi dan agregasi pada hidden layer, dan neuron penjumlahan pada output layer.

Untuk menghasilkan jaringan RANFIS yang optimal dilakukan proses training yaitu forward dan backward training.


Data yang digunakan adalah data harga penutupan saham harian Dow Jones & Company (terdaftar pada New York Stock Exchange) dengan acuan waktu senin-jumat, dari tahun 1985 hingga 2002, yang diperoleh dari http://lib.stat.cmu.edu/datasets/. Data untuk training dari 2 Januari 1985 s/d 7 Maret 2000 sebanyak 3836 record. Training menggunakan jumlah epoch 300, target error 0 dan fungsi keanggotaan segitiga, trapesium, gauss dan bell yang masing-masing akan dibandingkan performansinya.

Hasil analisis training dan testingmenunjukkan bahwa jenis fungsi keanggotaan sangat mempengaruhi hasil peramalan, karena turutmengubah jaringan RANFIS. Pemberian parameterepoch juga mempengaruhi nilai error dan hasilperamalan. Semakin banyak epoch yang dilakukan maka error yang dihasilkan akan berkurang ataupun tetap pada angka tertentu. Untuk perubahan error target berpengaruh pada performansi jaringan, nilai
error yang dihasilkan akan naik dengan nilai <>
Kesimpulan dari ini:
Hasil yang diperoleh dari penelitian berdasarkan pada pengujian yang telah dilakukan dengan algoritma RANFIS untuk memprediksi nilai saham. Fungsi keanggotaan Fuzzy dapat mengakomodasi sinyal JST dalam proses training dengan menggunakan fungsi keanggotaan tersebut sebagai fungsi aktivasi yang melakukan proses FIS pada tiap layernya. Perhitungan rough set secara perumusan dapat mengurangi nilai sinyal acak. Jaringan RANFIS yang melibatkan JST, sistem fuzzy dan Rough Set, mampu membangun suatu sistem peramalan yang baik dengan performansi yang dihasilkan dalam RMSE yaitu 0.9836.


Program code

//#include
#include
#include
#include
#include


//// Data dependent settings ////
#define numInputs 3
#define numPatterns 4


//// User defineable settings ////
#define numHidden 4
const int numEpochs = 500;
const double LR_IH = 0.7;
const double LR_HO = 0.07;


//// functions ////
void initWeights();
void initData();
void calcNet();
void WeightChangesHO();
void WeightChangesIH();
void calcOverallError();
void displayResults();
double getRand();


//// variables ////
int patNum = 0;
double errThisPat = 0.0;
double outPred = 0.0;
double RMSerror = 0.0;

// the outputs of the hidden neurons
double hiddenVal[numHidden];

// the weights
double weightsIH[numInputs][numHidden];
double weightsHO[numHidden];

// the data
int trainInputs[numPatterns][numInputs];
int trainOutput[numPatterns];


//==============================================================
//************** function definitions **************************
//==============================================================


//***********************************
// calculates the network output
void calcNet(void)
{
//calculate the outputs of the hidden neurons
//the hidden neurons are tanh
int i = 0;
for(i = 0;i< -5) { weightsHO[k] = -5; } else if (weightsHO[k] > 5)
{
weightsHO[k] = 5;
}
}

}


//************************************
// adjust the weights input-hidden
void WeightChangesIH(void)
{

for(int i = 0;i<= numEpochs;j++) { for(int i = 0;i

Tidak ada komentar: