如何调用libsvm 的java 库函数

Python021

如何调用libsvm 的java 库函数,第1张

第一步:下载java版libsvm3.12,解压。

第二步:打开java文件

第三步:建立项目,引用lib.svm包

第五步:把第二步中的文件夹中四个文件复制到一个自定义的包中

第六步:写程序调用,代码如下,贴出来供大家学习,有不对的地方,欢迎拍砖。

import java.io.IOException

import libsvm.svm

import libsvm.svm_model

public class SVMTest {

public static void main(String[] args) throws IOException {

svm_train svmt = new svm_train()

svm_predict svmp = new svm_predict()

String[] argvTrain = {

"C:\\Users\\baolong\\Desktop\\KDD\\other\\svm\\train\\TR1.data",// 训练文件

"C:\\Users\\baolong\\Desktop\\KDD\\other\\svm\\model\\MO1.model"// 模型文件

}

String[] argvPredict = {

"C:\\Users\\baolong\\Desktop\\KDD\\other\\svm\\predict\\PR1.data",// 预测文件

"C:\\Users\\baolong\\Desktop\\KDD\\other\\svm\\model\\MO1.model", // 模型文件

"C:\\Users\\baolong\\Desktop\\KDD\\other\\svm\\result\\RE1.out" // 预测结果文件

}

try {

svmt.main(argvTrain)

svmp.main(argvPredict)

} catch (IOException e) {

e.printStackTrace()

}

double[] record = { -1, 12, 12, 78 }

libsvm.svm_model model = svm

.svm_load_model("C:\\Users\\baolong\\Desktop\\KDD\\other\\svm\\model\\MO1.model")

System.out.println(svmp.predictPerRecord(record, model))

}

}

第一步:下载java版libsvm3.12,解压。

第二步:打开java文件夹

第三步:建立项目,引用lib.svm包

第四步:把第二步中的文件夹中四个文件复制到一个自定义的包中

SVM(support vector machine)是一项流行的分类技术。然而,初学者由于不熟悉SVM,常常得不到满意的结果,原因在于丢失了一些简单但是非常必要的步骤。在这篇文档中,我们给出了一个简单的操作流程,得到合理的结果。(译者注:本文中大部分SVM实际指的是LibSVM)

1 入门知识

SVM是一项非常实用的数据分类技术。虽然SVM比起神经网络(Neural Networks)要相对容易一些,但对于不熟悉该方法的用户而言,开始阶段通常很难得到满意的结果。这里,我们给出了一份指南,根据它可以得到合理结果。

需要注意,此指南不适用SVM的研究者,并且也不保证一定能够获得最高精度结果。同时,我们也没有打算要解决有挑战性的或者非常复杂的问题。我们的目的,仅在于给初学者提供快速获得可接受结果的秘诀。

虽然用户不是一定要深入理解SVM背后的理论,但为了后文解释操作过程,我们还是先给出必要的基础的介绍。一项分类任务通常将数据划分成训练集和测试集。训练集的每个实例,包含一个“目标值(target value)”(例如,分类标注)和一些“属性(attribute)”(例如,特征或者观测变量)。SVM的目标是基于训练数据产出一个模型(model),用来预测只给出属性的测试数据的目标值。