1. 程式人生 > >ML之SVM:利用Js語言設計SVM演算法(SMO演算法+線性核/高斯核)

ML之SVM:利用Js語言設計SVM演算法(SMO演算法+線性核/高斯核)

ML之SVM:利用Js語言設計SVM演算法(SMO演算法+線性核/高斯核)

輸出結果

 

設計思路

 

 

設計程式碼(部分程式碼)

var doTest = function() {
    loadData();     //呼叫loadData函式載入樣本資料、初始化引數

    svm.train(2000);//呼叫svm.train函式,迭代2000次實現SMO演算法

    var result = {};
    //for迴圈實現得到並返回result
    for(var x = -230; x <= 230; x += 5) {
      for(var y = -230; y <= 230; y += 5) {
          var sample = [x/100, y/100];
          var pred = svm.pred(sample, 2);
          if ( pred >= 1) {
            pred = 2;
          } else if ( pred <= -1) {
            pred = -2;
          } else if (pred > 0) {
            pred = 1;
          } else {
            pred = -1;
          }
          result[x/100 + ',' + y/100] = pred;
      }
    }

    return result;
}