1. Svm-train使用
a. cd到libsvm/windows盘符下;
b. 进行libsvm训练,输入命令svm-train heart_scale train.model,回车;
heart_scale ——是目录下的已经存在的样本文件,要换成自己的文件,只需改成自己的文件名就可以了
train.model ——是创建的结果文件,保存了训练后的结果

可以看到结果,其中,
#iter为迭代次数,
nu 是你选择的核函数类型的参数,
obj为SVM文件转换为的二次规划求解得到的最小值,
rho为判决函数的偏置项b,
nSV 为标准支持向量个数(0<a[i]<c),
nBSV为边界上的支持向量个数(a[i]=c),
Total nSV为支持向量总个数(对于两类来说,因为只有一个分类模型Total nSV = nSV,但是对于多类,这个是各个分类模型的nSV之和)。
在目录下,还可以看到产生了一个train.model文件,可以用记事本打开,记录了训练后的结果。
svm_type c_svc //所选择的svm类型,默认为c_svc
kernel_type rbf //训练采用的核函数类型,此处为RBF核
gamma 0.0769231 //RBF核的参数γ
nr_class 2 //类别数,此处为两分类问题
total_sv 132 //支持向量总个数
rho 0.424462 //判决函数的偏置项b
label 1 -1 //原始文件中的类别标识
nr_sv 64 68 //每个类的支持向量机的个数
SV //以下为各个类的权系数及相应的支持向量
2. Svm-predict应用
用法:svmpredict [options] test_file model_file output_file
其中,
options为操作参数,可用的选项即表示的涵义如下所示:
-b probability_estimates——是否需要进行概率估计预测,可选值为0 或者1,默认值为0。
model_file ——是由svmtrain 产生的模型文件;
test_file—— 是要进行预测的数据文件,格式也要符合libsvm格式,即使不知道label的值,也要任意填一个,svmpredict会在output_file中给出正确的label结果,如果知道label的值,就会输出正确率;
output_file ——是svmpredict 的输出文件,表示预测的结果值。
实际操作:

总共22个数据,全部成了支持向量,说明分类出现问题。可能原因:数据问题。

分类结果:

分类结果可见,所有案例全被分类为0.
分类错误原因:数据不对。
本文详细介绍SVM训练过程,包括使用libsvm的svm-train命令进行模型训练,解析输出结果,理解支持向量、核函数等关键概念。同时,阐述如何应用svm-predict进行数据预测,解读操作参数及预测结果。
7万+

被折叠的 条评论
为什么被折叠?



