【问题标题】:SVM using Encog in Java for beginnersSVM 在 Java 中为初学者使用 Encog
【发布时间】:2015-02-28 00:32:02
【问题描述】:

我是 SVM 的初学者。有人可以帮助我从基础上理解使用 Encog 的 SVM 的概念吗?这将有助于示例 Java 代码。

【问题讨论】:

    标签: java machine-learning svm encog


    【解决方案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();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2014-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-12
      • 2012-04-14
      • 1970-01-01
      • 2013-03-29
      • 2015-09-17
      相关资源
      最近更新 更多