- 2
- 0
- 约3.02万字
- 约 23页
- 2021-11-28 发布于福建
- 举报
LibSVM (JAVA )二次开发接口调用及源码更改的文档
浙江大学协调服务研究所
文档整理:陈伟 chenweishaoxing#163.com
下载 libsvm
方法: google libsvm 找到官网下载:
.tw/~cjlin/libsvm/ ,其中图片中椭圆的
解压文档
下载下来 libsvm 工具包有几个版本的,其中 python 的最经典,用的人比较多,
还支持 matlab,C++等等。我们用的 java 版的,就到解压开的 java 文件夹中!
java 文件夹
导入到 eclipse 工程中
创建一个 java 工程,把上图的源码复制到 eclipse 中,如同所示
在工程下创建一个文件夹,里面存放训练测试用的数据
首次调用的 Demo 举例
在 java 的工程中创建一个属于自己的包,然后写一个 mian 类。如图
ComMain.java
package com.endual.paper.main;
import java.io.IOException;
import service.svm_predict;
import service.svm_train;
public class ComMain {
public static void main(String[] args) throws IOException {
String []arg ={ trainfile\\train1.txt, // 存放 SVM 训练模型用的数据的路径
trainfile\\model_r.txt}; // 存放 SVM 通过训练数据训 / // 练出来的模型的路径
String []parg={trainfile\\train2.txt, // 这个是存放测试数据
trainfile\\model_r.txt, //调用的是训练以后的模型
trainfile\\out_r.txt}; // 生成的结果的文件的路径
System.out.println(SVM 运行开始 );
// 创建一个训练对象
svm_train t = new svm_train();
// 创建一个预测或者分类的对象
svm_predict p= new svm_predict();
t.main(arg); // 调用
p.main(parg); //调用
}
}
6. 运行工程就可以看到了结果了
Libsvm 二次开发的首先要熟悉调用接口的源码
你一定会有疑问: SVM 的参数怎么设置, cross-validation怎么用。那么我们首
先来说明一个问题,交叉验证在一般情况下要自己开发自己写。 Libsvm 内置了
交叉验证,但是如果我希望用同交叉验证的数据用决策树来做,怎么办,显然
Libsvm 并没有保存交叉验证的数据。
============================================================
我已经将注释写在了源码中。
Svm_train 类的文档说明
package service;
import libsvm.*;
import java.io.*;
import java.util.*;
public class svm_train {
private svm_parameter param; // set by parse_command_line
private svm_problem prob;
原创力文档

文档评论(0)