libsvm交叉验证

libsvm的k折交叉验证是将训练样本平均分成k份,每次拿出k-1份作为训练数据,剩下的一份作为测试数据,这样重复做k次,获得k次的平均交叉验证准确率作为结果,model都没有保存(也就是说没有生成model文件)。k折一般常用为5。

不使用交叉验证,即去掉-v选项后,可以生成model文件。


当svm-train使用-v参数时,此时svm-train返回的不再是一个结构体model,而是交叉验证的精度,对于分类问题,返回的是交叉检验下的平均分类准确率回归问题,返回的是交叉检验下的平均均方根误差(MSE)。


-v 交叉验证后会返回一个效率值,你找到这个效率最大的c和g


libsvm解决数据不平衡,可以使用-wi参数来进行设置。例如svm-train -s 0 -c 10 -w1 1 -w-1 5 data_file。则对类别“-1”的惩罚较大,注意-wi选项仅用在C-SVC中。

nu-SVC和C-SVC这两类SVM分类器除了参数不同外,两者基本是一样的。C-SVC中C的范围是从0-无穷大,nu-SVC中C的范围是【0-1】。nu一个很好的特性:它与支持向量的比率和训练误差的比率相关。

libsvm交叉验证_第1张图片


你可能感兴趣的:(SVM)