项目作者: ekojs

项目描述 :
Berisi kumpulan algoritma dari Machine Learning dan Computational Intelligance
高级语言: JavaScript
项目地址: git://github.com/ekojs/machine_learning.git
创建时间: 2017-03-04T12:19:17Z
项目社区:https://github.com/ekojs/machine_learning

开源协议:MIT License

下载


Machine Learning & Computational Intelligence

Berisi kumpulan algoritma dari Machine Learning dan Computational Intelligance

1. K-Means Clustering Algorithm

Contoh menggunakan nodejs console :

  1. var ejs_kmeans = require('./unsupervised/ejs_kmeans');
  2. function TestData(samples,centroid){
  3. console.log('Samples Data : %s \n','('+samples.join(') (')+')');
  4. var k_means = new ejs_kmeans.k_mean_cluster(samples);
  5. k_means.initialize(centroid);
  6. k_means.calculate();
  7. console.log(k_means.result().replace(/<br \/>/g,"\n").replace(/ /g,' ').replace(/<\/?strong>/g,''));
  8. }
  9. TestData([[5.09,5.80], [3.24,5.90], [1.68,4.90], [1.00,3.17], [1.48,1.38], [2.91,0.20], [4.76,0.10], [6.32,1.10], [7.00,2.83], [6.52,4.62]],[[1.48,1.38],[4.76,0.10]]);
  10. //TestData([[5.09,5.80], [3.24,5.90], [1.68,4.90], [1.00,3.17], [1.48,1.38], [2.91,0.20], [4.76,0.10], [6.32,1.10], [7.00,2.83], [6.52,4.62]],[[5.09,5.80], [3.24,5.90]]);
  11. //TestData([[1.0,1.0],[1.5,2.0],[3.0,4.0],[5.0,7.0],[3.5,5.0],[4.5,5.0],[3.5,4.5]],[[1,1],[5,7]]);
  12. //TestData([[1,1],[2,1],[4,3],[5,4]],[[1,1],[2,1]]);
  13. //TestData([[1,1,2],[2,1,3],[4,3,2],[5,4,4],[4,4,4]],[[1,1,2],[2,1,3]]);
  14. //TestData([[5.09,5.80], [3.24,5.90], [1.68,4.90], [1.00,3.17], [1.48,1.38], [2.91,0.20], [4.76,0.10], [6.32,1.10], [7.00,2.83], [6.52,4.62]],[[5.09,5.80], [3.24,5.90], [1.68,4.90]]);

Baca artikel pada K-Means Clustering Algorithm

Simulasi program di sini

2. Backpropagation Neural Network

Penggunaan Backpropagation disini, penulis masih menggunakan fungsi aktivasi secara hardcode, fungsi aktivasi pada IH menggunakan TANH sedangkan pada HO menggunakan fungsi aktivasi SOFTMAX dan ‘SIGMOID` untuk Binary Classification.

Contoh menggunakan nodejs console :

  1. var ejs_neural = require('./supervised/ejs_neural');
  2. var opt = {
  3. learning_rate:0.05,
  4. momentum:0.01,
  5. maxEpochs:500
  6. };
  7. // var TT = [[-1,-1,1,-1],[-1,1,1,1],[1,-1,1,1],[1,1,1,-1]]; // xor
  8. // var TT = [[-1,-1,1,-1],[-1,1,1,-1],[1,-1,1,-1],[1,1,1,1]]; // and
  9. var TT = [[-1,-1,1,-1],[-1,1,1,1],[1,-1,1,1],[1,1,1,1]]; // or
  10. // var json = '{"0":-1.8570453538530167,"1":-1.0578781246699556,"2":1.6716922611300928,"3":-1.1001127357871128,"4":1.8538154659419666,"5":-1.124630964477959,"6":-1.677438527019374,"7":-1.0075326202144037,"8":-1.0230813212370369,"9":0.46272458742612566,"10":-0.6512284898272416,"11":-0.6612252388250472,"12":-0.9230821882924356,"13":0.7306611846866936,"14":-1.066699519330741,"15":-0.5033335760896673,"16":3.412458805650443,"17":1.6494378062956072,"18":3.3143332296912598,"19":-1.6840062015951618,"20":0.2616096437809812}';
  11. var nn = new ejs_neural.Neural(3,4,1,opt);
  12. // tes.fromJSON(json);
  13. // nn.initWeights(ejs_neural.range(0.01,3*4+4+4*1+1,0.01))
  14. nn.train(TT);
  15. // var data = nn.makeTrainTest(TT);
  16. // console.log(data);
  17. // console.log('Mulai training ...');
  18. // nn.train(data.data_training);
  19. // console.log('Training selesai ...');
  20. // console.log('--------------- Final nn weights -----------------');
  21. // console.log(nn.toJSON());
  22. // console.log('--------------------------------------------------');
  23. // console.log('Akurasi data training : %d',nn.accuracy(data.data_training));
  24. // console.log('Akurasi data test : %d',nn.accuracy(data.data_test));
  25. console.log('Akurasi data : %d',nn.accuracy(TT));
  26. console.log('Actual %d, prediction : %d',-1,nn.forward([-1,-1,1]).outputs[0]); // -1 or
  27. console.log('Actual %d, prediction : %d',1,nn.forward([1,1,1]).outputs[0]); // 1 or
  28. console.log('Actual %d, prediction : %d',1,nn.forward([-1,1,1]).outputs[0]); // 1 or
  29. console.log('Actual %d, prediction : %d',1,nn.forward([1,-1,1]).outputs[0]); // 1 or