第三步:建立项目,引用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),用来预测只给出属性的测试数据的目标值。