SVM 算法 java版本

  • y7_905026
    了解作者
  • 1.8KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-04-28 09:00
    上传日期
SVM 算法 java 实现了调用接口,只要传入数据即可,调用了encog这个开源包的SVM算法,也是官方libsvm的。
SVM_2.zip
  • algorithmApi.java
    1.8KB
  • SVM.java
    3.3KB
内容介绍
package algorithm; 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.KernelType; import org.encog.ml.svm.SVMType; import org.encog.ml.svm.training.SVMTrain; import org.encog.neural.NeuralNetworkError; import java.util.ArrayList; /** * Created by fish123 on 2016/12/14. */ public class SVM { org.encog.ml.svm.SVM svm; public void trainSVM(double[][] trainData,double[][] trainlabel,int SVMtype,int kenelType){ org.encog.ml.svm.SVMType svm_type; switch(SVMtype) { case 1: svm_type = SVMType.NewSupportVectorRegression; break; case 2: svm_type = SVMType.NewSupportVectorClassification; break; case 3: svm_type = SVMType.SupportVectorOneClass; break; case 4: svm_type = SVMType.EpsilonSupportVectorRegression; break; case 5: svm_type = SVMType.NewSupportVectorRegression; break; default: throw new NeuralNetworkError("Invalid svm type"); } org.encog.ml.svm.KernelType kernel_type; switch(kenelType) { case 1: kernel_type = KernelType.Linear; break; case 2: kernel_type = KernelType.Poly; break; case 3: kernel_type = KernelType.RadialBasisFunction; break; case 4: kernel_type = KernelType.Sigmoid; break; case 5: kernel_type = KernelType.Precomputed; break; default: throw new NeuralNetworkError("Invalid svm type"); } svm = new org.encog.ml.svm.SVM(trainData[0].length,svm_type, kernel_type); // create training data MLDataSet trainingSet = new BasicMLDataSet(trainData,trainlabel); // train the SVM final SVMTrain train = new SVMTrain(svm, trainingSet); train.iteration(); train.finishTraining(); } public Double[][] computeSVM(double[][] testData) { double[][] dataTotest = new double[testData.length][testData[0].length]; double[][] TLabel = new double[testData.length][1]; for(int i=0;i<dataTotest.length;i++){ TLabel[i][0] = Math.random(); } MLDataSet testSet = new BasicMLDataSet(dataTotest,TLabel); // test the SVM System.out.println("SVM Results:"); int index = 0; ArrayList<Double> result = new ArrayList<>(); String content = ""; for(MLDataPair pair: testSet ) { final MLData output = svm.compute(pair.getInput()); content+= "predist=" + output.getData(0)+"\r\n"; result.add(output.getData(0)); index++; } Double[][] returnResult = new Double[result.size()][1]; for(int i = 0;i<result.size();i++) { returnResult[i][0] = result.get(i); } return returnResult; } }
评论
    相关推荐
    • 遗传算法java工程
      工程利用遗传算法解决多路复用器的模拟状态,里面有充分的技术文档(英语)以及代码注释,自己写的,用不到了以后。贡献出来给大家。
    • Java迷宫算法 Java迷宫算法
      Java迷宫算法;Java迷宫算法;Java迷宫算法;Java迷宫算法;Java迷宫算法;Java迷宫算法;Java迷宫算法
    • 蚁群算法Java实现
      蚁群算法Java语言实现,包含一个TSP问题的源数据,导入后按照代码提示放在对应的位置,方便新手学习使用
    • 国密算法java实现
      国家商用密码管理局公布的标准国密算法SM4的算法实现哦
    • 遗传算法java实现
      本代码为Java实现的遗传算法,压缩包中有详细的说明,希望对各位有帮助
    • AHP算法java实现
      java实现AHP算法,包括文档说明,算法介绍等ppt文档 欢迎使用
    • tomasulo算法java实现
      自己用java实现的一个简单的tomasulo算法的实现对,并且做了界面,有助于对tomasulo算法有一个更好的了解
    • 经典算法JAVA
      与初学者分享 java 写的经典算法 求和,素数,兔子问题,年龄问题等
    • 匈牙利算法java实现
      java实现的匈牙利算法,
    • TFIDF算法java实现
      需要的就下吧,其实源代码和jar包之前都有提供,这次花费了点时间整理了下。