Libsvm使用方法cmd版本&&Java版本

来源:互联网 发布:新西游记知乎 编辑:程序博客网 时间:2024/06/03 16:40

1.windows cmd命令窗口版本

下载的libsvm包里面已经为我们编译好了(windows)。

进入libsvm\windows,可以看到这几个exe文件:

1.svm-predict: svmpredict test_file mode_file output_file 依照已经train好的model ,输入新的数据,并输出预测新数据的类别。

2.svm-scale: 有时候特征值的波动范围比较大需要对特征数据进行缩放,可以缩放到0–1之间(自己定义)。

3.svm-toy:是图形界面,可以自己画点,产生数据等。

4.svm-train: svmtrain [option] train_file [model_file] train 会接受特定格式的输入,产生一个model 文件。

输入数据格式
label index:value [ index:value]…
比如
1 1:0.5 2:0.3
2 1:0.3 2:0.85
代表属于类别1的(0.5, 0.3)和属于类别2的(0.3, 0.85)

若缺省某维度,默认为0。如1 3:0.5代表(0, 0, 0.5)。
省略为0的维度能减少内存使用,提高运算速度。

训练

使用svm-train.exe,打开命令行,输入svm-train可查看帮助信息。
用法:svm-train [参数] 训练数据路径 [输出模型文件路径]
参数:(待完善)
这里写图片描述
这里写图片描述

测试

使用svm-predict.exe,打开命令行,输入svm-predict可查看帮助信息。
用法:svm-predict [参数] 测试数据路径 训练好的模型文件路径 预测输出文件路径

这里写图片描述

Java平台版本

import java.io.IOException;public class MyTest {    public static void main(String[] args) throws IOException {        //训练        String[] trainArgs = {"train.txt"};  //训练文件目录        String modelFile = svm_train.main(trainArgs);    //返回训练模型文件        //预测        String[] testArgs = {"predict.txt",   //待预测文件                             modelFile,                  //训练好的模型文件                             "result.txt"};//预测结果文件        Double accuracy = svm_predict.main(testArgs);    //返回预测精确度        System.out.println("SVM Classification is done! The accuracy is " + accuracy);    }}

标准化数据
使用svm-scale.exe。打开命令行,输入svm-scale可查看帮助信息。

(待完善)

原创粉丝点击