支持向量机参数设置详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序中SVM 的参数:
TestSVM_Parameter.svm_type=C_SVC;
TestSVM_Parameter.kernel_type= RBF;
TestSVM_Parameter.degree=3.0;
TestSVM_Parameter.coef0=1;
TestSVM_Parameter.gamma=1;
TestSVM_Parameter.cache_size=40;
TestSVM_Parameter.eps=0.01;
TestSVM_Parameter.C=1.0;
TestSVM_Parameter.shrinking=1;
TestSVM_Parameter.nr_weight=0;
TestSVM_Parameter.weight=NULL;
TestSVM_Parameter.weight_label=NULL;
SVM 参数含义:
int svm_type :SVM 问题类型:
0: C_SVC: 多类别识别问题,求解问题 ,,min b w ξ 1
12l t i i C ξ=+∑w w 1: NU_SVC :多类别识别问题,求解问题 ,,,min b ρw ξ 1
112l
t i i l νρξ=-+∑w w 2: ONE_CLASS :两类别识别问题,求解问题 ,,,min b ρw ξ 1
112l
t i i l ρξν=-+∑w w
3: EPSILON_SVR :回归分析,求解问题 *,,,min b w ξξ *1112l l t i i i i C C ξξ==++∑∑w w
4: NU_SVR :回归分析,求解问题 *,,,,min b εw ξξ ()*112l t i i i C νεξξ=⎛⎫+++ ⎪⎝⎭∑w w int kernel_type :核函数类型:
0: LINEAR ,线性,(),t K =x y x y
1: POL Y ,多项式,()(),d t K C γ=+x y x y
2: RBF ,径向基函数,()()2,exp K γ=--x y x y
3: SIGMOID ,Sigmoid 函数,()(
),tanh t K C γ=+x y x y
double degree :多项式核函数参数
double gamma :多项式、径向基函数和Sigmoid 函数的参数 double coef0:多项式和Sigmoid 函数的参数
double cache_size:缓存大小(MB)(标准值40);
double eps:算法终止条件,类似于收敛精度,越小精度越高(标准值0.001);
double C:C_SVC,EPSILON_SVR中的对于误分类样本的惩罚性因子C,越大
惩罚性越强,相当于对数据的信心越大,数据噪声比较小,(可设为1
或1000);
double nu:NU_SVC,ONE_CLASS和NU_SVR中的ν,对误分类样本的另一
种解决方案,ν是支持向量占总样本比例的下界,和样本处在分类界
面两侧一个小邻域内数目占总样本数比例的上界(邻域大小或称管道
半径ρ为隐含参数)。(标准值0.5);
double p:EPSILON_SVR中的ε,回归误差的上限,误差小于此值不惩罚,大
于此值惩罚,实际上相当于期望的回归精度(标准值0.1);
int shrinking:是否使用shrinking策略,0—不使用,1—使用(标准值1);
int nr_weight:C_SVC中需使用不同惩罚性因子的类别数;(一般可不用,设为0,每个类别的惩罚因子均为C)
int *weight_label:需使用特殊惩罚性因子的类别标号,weight_label[nr_weight];
double *weight:各类别惩罚性因子的系数,第i个类别的惩罚因子为weight(i)*C,
没有可设为NULL,weight[nr_weight];