libsvm-javaAPI
获得
<dependency> <groupId>tw.edu.ntu.csie</groupId> <artifactId>libsvm</artifactId> <version>3.17</version> </dependency>
libsvm-3.17.jar的结构见下图,
default package:这里是工具制作者自己封装出来的一些类,它们都有main函数,可作为小工具直接使用。
libsvm package:核心文件。
关于default package:因为里面的类不在任意一个package中,所以我们的工程无法引用。解决办法是,通过maven得到源代码,然后复制粘贴到我们的package下面。
svm_train的输入为训练集,输出为得到的训练模型。
svm_predict的输入为待预测数据,输出为得到的预测结果。
它们的输入输出都是文件。
训练集
libsvm官方提供了一些训练集:http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/其中有一个breast-cancer训练集,见图:
格式为: label featurIndex1:value1featurIndex2:value2 ...
训练模型model
它是一个文本文件,内容见图:
预测
本例中直接把训练集作为待预测集,结果见下:预测集与训练集一样,每一行都要有label标签。当我们用已知的结果来检验预测的准确性时,那么下行输出的准确性统计就是真实的:
Accuracy = 90.9090909090909% (10/11) (classification)
当我们预测未知数据时(大多数情况都属于这一种),那么这行信息忽略就可以了。
代码
参数设置
String[] testArgs = {"-b","1","d:/libsvm/breast-cancer.predict.txt", "d:/libsvm/breast-cancer.model", "d:/libsvm/breast-cancer.predict.result.txt"};此时,预测结果的输出为:
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。