libsvm学习笔记-参数设置

  • Post author:
  • Post category:其他



【原创文章 禁止私自转载 谢谢】



SVM的主要思想

是建立一个超平面作为决策曲面,使得正例和反例之间的距离边缘被最大化(其实,SVC与SVR在一定意义上,思想是完全统一的,都是最大化间隔,使得各自的损失函数值最小)




SVM相对于目前相对较火的人工神经网络来讲,具有一定的优点,其中最为重要的是SVM获得模型理论上是全局最优的。而且,支持向量机复杂度与样本特征维度无关。




下面,简单记录一下学习使用libsvm过程中的第一步,了解各个参数的意义:



-s


选择SVM的类型




-t


核函数类型







-d degree:



核函数中的degree设置(针对多项式核函数)(默认3)


-g r(gama):



核函数中的gamma函数设置(针对多项式/rbf/sigmoid核函数)(默认1/ k)


-r coef0:



核函数中的coef0设置(针对多项式/sigmoid核函数)((默认0)


-c cost:



设置C-SVC,e -SVR和v-SVR的参数(损失函数)(默认1) 一般可以选择10^t, t=-4, -3,…, 3, 4, 惩罚



过大容易造成过拟合


-n nu:



设置v-SVC,一类SVM和v- SVR的参数(默认0.5)


-p p:



设置e -SVR 中损失函数p的值(默认0.1)


-m cachesize:



设置cache内存大小,以MB为单位(默认40)


-e eps:



设置允许的终止判据(默认0.001)


-h shrinking:



是否使用启发式,0或1(默认1)


-wi weight:



设置第几类的参数C为weight*C(C-SVC中的C)(默认1)


-v n:



n-fold交叉检验模式,n为fold的个数,必须大于等于2

基本上的参数都列在上边了,也是汇总了大量的网络资料,还有libsvm自带的readme,推荐大家经常去看一下林老师的网站http://www.csie.ntu.edu.tw/~cjlin/libsvm/ ;上边的小工具会减少我们进行实验时的代码量,而且能够提供很多实验思路。

这篇博文纯粹是解释参数,汇总整理成表格方便阅读理解一些,不涉及原理性的东西。

有不对的地方欢迎大家指正。





版权声明:本文为MrFortitude原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。