最近学习libsvm库,将一些个人认为可以mark的东西做了记录,虽然README文档很清晰,但是在这篇文章中列出了dual problemd和核函数的公式,这样在选择参数时更加清楚。刚开始学习LIBSVM库时直接一脸懵,现在也还是在不断摸索中,如若有理解错误,请指出哦,谢谢!
Libsvm 使用步骤:
1. 按照libsvm要求的数据格式,将要训练和预测的数据准备好;http://blog.csdn.net/u014772862/article/details/51828981
2. 使用svm-scale实现数据缩放,可有可没有,需要按照特征的相关性进行操作;
3. 考虑svm-train时是否使用核函数以及核函数的选择,建议首先考虑RBF核函数;
4. 采用grid.py选择最优参数c和g;http://blog.csdn.net/u014772862/article/details/51829727
5. 设置svm-train参数,对整个数据集训练获取svm模型;
6. 利用svm-predict加载训练好的模型进行测试与预测。
1. svmscale 的用法
对数据集缩放的目的在于:
1)避免原始数据中部分特征范围过大而另一部分特征范围过小;
2)避免在训练时选择核函数计算内积时引起数值计算的困难;
3)加快训练速度,提高准确率。
因此,将数据缩放到[-1,1]或者[0,1]之间。
用法:svm-scale [options] data_filename”
其中,options选择如下:
-l lower,数据下限标记,设置lower值表示缩放后数据下限,默认为-1;
-u upper,数据上限标记,设置upper值表示缩放后数据上限,默认为1;
-y y_lower y_upper,是否对目标值同时进行缩放,y_lower 表示下限值, y_upper表示上限值;
-s save_filename,将缩放的规则保存为文件save_filename;
-r restore_filename,表示将缩放规则文件restore_filename载入后按此缩放;
fi