2015-01-01 29 views

回答

1

Encog SVM只是一個分類或迴歸模型,可以與其他模型類型交互使用。我修改了Hello World XOR示例以使用它,您可以在下面看到結果。

這是一個體面的介紹給他們:http://webdoc.nyumc.org/nyumc/files/chibi/user-content/Final.pdf 這是一個更基本的介紹到一般的造型,我寫的神經網絡,但它適用於SVM以及:http://www.heatonresearch.com/content/non-mathematical-introduction-using-neural-networks

package org.encog.examples.neural.xor; 

import org.encog.Encog; 
import org.encog.ml.data.MLData; 
import org.encog.ml.data.MLDataPair; 
import org.encog.ml.data.MLDataSet; 
import org.encog.ml.data.basic.BasicMLDataSet; 
import org.encog.ml.svm.SVM; 
import org.encog.ml.svm.training.SVMTrain; 

public class XORHelloWorld { 

    /** 
    * The input necessary for XOR. 
    */ 
    public static double XOR_INPUT[][] = { { 0.0, 0.0 }, { 1.0, 0.0 }, 
      { 0.0, 1.0 }, { 1.0, 1.0 } }; 

    /** 
    * The ideal data necessary for XOR. 
    */ 
    public static double XOR_IDEAL[][] = { { 0.0 }, { 1.0 }, { 1.0 }, { 0.0 } }; 

    /** 
    * The main method. 
    * @param args No arguments are used. 
    */ 
    public static void main(final String args[]) { 

     // create a SVM for classification, change false to true for regression  
     SVM svm = new SVM(2,false); 

     // create training data 
     MLDataSet trainingSet = new BasicMLDataSet(XOR_INPUT, XOR_IDEAL); 

     // train the SVM 
     final SVMTrain train = new SVMTrain(svm, trainingSet); 
     train.iteration(); 
     train.finishTraining(); 

     // test the SVM 
     System.out.println("SVM Results:"); 
     for(MLDataPair pair: trainingSet) { 
      final MLData output = svm.compute(pair.getInput()); 
      System.out.println(pair.getInput().getData(0) + "," + pair.getInput().getData(1) 
        + ", actual=" + output.getData(0) + ",ideal=" + pair.getIdeal().getData(0)); 
     } 

     Encog.getInstance().shutdown(); 
    } 
} 
+0

非常感謝傑夫! – Avis