libsvm学习笔记-参数设置

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

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


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


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

-s 选择SVM的类型

libsvm学习笔记-参数设置_第1张图片

-t 核函数类型

libsvm学习笔记-参数设置_第2张图片

-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/ ;上边的小工具会减少我们进行实验时的代码量,而且能够提供很多实验思路。


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


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



你可能感兴趣的:(svm,机器学习(ML))