【原创文章 禁止私自转载 谢谢】
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/ ;上边的小工具会减少我们进行实验时的代码量,而且能够提供很多实验思路。
这篇博文纯粹是解释参数,汇总整理成表格方便阅读理解一些,不涉及原理性的东西。
有不对的地方欢迎大家指正。