1、SVM(Support Vector Machines)原理
2、SVM参数/属性/接口详解
3、总结
1、SVM原理
2、SVC参数列表:
SVM属性列表
SVC的接口列表
3、总结: 本文主要介绍了SVM原理中的各种概念,软硬间隔,以及惩罚系数C、核函数的各种参数gamma,coef0和degree,解决样本不均衡的参数class_weight,解决多分类问题的参数decision_function_shape,控制概率的参数probability,控制计算内存的参数cache_size,属性主要包括调用支持向量的属性support_vectors_和查看特征重要性的属性coef_。接口中,介绍了最核心的decision_function。
CvSVMParams::CvSVMParams() :svm_type(CvSVM::C_SVC), kernel_type(CvSVM::RBF), degree(0),
gamma(1), coef0(0), C(1), nu(0), p(0), class_weights(0)
SVM种类:CvSVM::C_SVC C_SVC该类型可以用于n-类分类问题 (n>=2),其重要特征是它可以处理非完美分类
的问题 (及训练数据不可以完全的线性分割)。它是最常被使用的SVM类型。
CvSVM::C_SVC - n(n>=2)分类器,允许用异常值惩罚因子C进行不完全分类。
CvSVM::NU_SVC - n类似然不完全分类的分类器。参数nu取代了c,其值在区间【0,1】中,nu越大,决策边界越平滑。
CvSVM::ONE_CLASS - 单分类器,所有的训练数据提取自同一个类里,然後SVM建立了一个分界线以分割该类在特征空间中所占区域和其它类在特征空间中所占区域。
CvSVM::EPS_SVR - 回归。 训练集中的特征向量和拟合出来的超平面的距离需要小于p。异常值惩罚因子C被采用。
CvSVM::NU_SVR - 回归;nu 代替了p
Kernel的种类:
CvSVM::LINEAR - 表示不需要进行映射,没有任何向映射至高维空间,线性区分(或回归)在原始特征空间中被完成,这是最快的选择。 d(x,y) = x?y == (x,y)
CvSVM::POLY - 多项式核: d(x,y) = (gamma*(x?y)+coef0)degree
CvSVM::RBF - 径向基,对于大多数情况都是一个较好的选择:d(x,y) = exp(-gamma*|x-y|2)
CvSVM::SIGMOID - sigmoid函数被用作核函数: d(x,y) = tanh(gamma*(x?y)+coef0)
CvSVM::RBF,貌似比 CvSVM::LINER 正确率高
degree:内核函数(POLY)的参数degree。
10.0(此次不使用)
gamma:内核函数(POLY/ RBF/ SIGMOID)的参数\gamma。
8.0
coef0:内核函数(POLY/ SIGMOID)的参数coef0
1.0(此次不使用)
C:Cvalue – SVM类型(C_SVC/ EPS_SVR/ NU_SVR)的参数C。
10.0
nu: SVM类型(NU_SVC/ ONE_CLASS/ NU_SVR)的参数 \nu。
0.5(此次不使用)
p:SVM类型(EPS_SVR)的参数 \epsilon。
0.1(此次不使用)
class_weights: – C_SVC中的可选权重,赋给指定的类,乘以C以后变成 class_weight_si * C。所以这些权重影响不同类别的错误分类惩罚项。权重越大,某一类别的误分类数据的惩罚项就越大。
term_crit: – SVM的迭代训练过程的中止条件,解决部分受约束二次最优问题。您可以指定的公差和/或最大迭代次数。
然后对训练数据正规化处理,并放在CvMat型的数组里。
-s svm类型:SVM设置类型(默认0)% 0 -- C-SVC
% 1 --v-SVC
% 2 – 一类SVM
% 3 -- e -SVR
% 4 -- v-SVR
% -t 核函数类型:核函数设置类型(默认2)
% 0 – 线性:u'v
% 1 – 多项式:(r*u'v + coef0)^degree
% 2 – RBF函数:exp(-r|u-v|^2)
% 3 –sigmoid:tanh(r*u'v + coef0)
% 4 -- precomputed kernel (kernel values in training_instance_matrix)
% -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)
% -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)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)