学习Opencv2.4.9---SVM支持向量机1( 二 )

  • double Cvalue,
  • double nu,
  • double p,
  • CvMat* class_weights,
  • CvTermCriteria term_crit

  • 方法如果不传自定义参数会按如下代码进行默认初始化:
    1. CvSVMParams::CvSVMParams() : svm_type(CvSVM::C_SVC), kernel_type(CvSVM::RBF), degree(0),
    2. gamma(1), coef0(0), C(1), nu(0), p(0), class_weights(0)
    3. {
    4. term_crit = cvTermCriteria( CV_TERMCRIT_ITER+CV_TERMCRIT_EPS, 1000, FLT_EPSILON );
    5. }

    :SVM的内核类型(4种):
    上面已经介绍过了就不再多说了 。
    学习Opencv2.4.9---SVM支持向量机1

    文章插图
    :指定SVM的类型(5种):
    1、CvSVM::C_SVC : C类支撑向量分类机 。n类分组 (n≥2),容许用异常值处罚因子C进行不完全分类 。
    2、CvSVM:: :
    类支撑向量分类机 。n类似然不完全分类的分类器 。参数为
    庖代C(其值在区间【0,1】中,nu越大,决定计划鸿沟越腻滑) 。
    3、CvSVM:: : 单分类器,所有的练习数据提取自同一个类里,然后SVM建树了一个分界线以分别该类在特点空间中所占区域和其它类在特点空间中所占区域 。
    4、CvSVM:: :
    类支撑向量回归机 。练习集中的特点向量和拟合出来的超平面的间隔须要小于p 。异常值处罚因子C被采取 。
    5、CvSVM:: :
    类支撑向量回归机 。
    庖代了 p 。
    :内核函数(POLY)的参数 。
    gamma:内核函数(POLY/ RBF/ )的参数

    coef0:内核函数(POLY/ )的参数coef0 。
    :SVM类型(C_SVC/ / )的参数C 。
    nu:SVM类型(/ / )的参数

    p:SVM类型()的参数

    :C_SVC中的可选权重,赋给指定的类,乘以C今后变成
    。所以这些权重影响不合类此外错误分类处罚项 。权重越大,某一类此外误分类数据的处罚项就越大 。
    :SVM的迭代练习过程的中断前提,解决项目组受束缚二次最优题目 。您可以指定的公差和/或最大迭代次数 。
    1. CvSVM::train(const CvMat* trainData,
    2. const CvMat* responses,
    3. const CvMat* varIdx=0,
    4. const CvMat* sampleIdx=0,
    5. CvSVMParams params=CvSVMParams()

    1、: 练习数据,必须是 (32位浮点类型,单通道) 。数据必须是的,即特点向量以行来存储 。
    2、: 响应数据,凡是是1D向量存储在 (仅仅用在分类题目上)或者格局 。
    3、: 指定感爱好的特点 。可所以整数(32sC1)向量,例如以0为开端的索引,或者8位(8uC1)的应用的特点或者样本的掩码 。用户也可以传入NULL指针,用来默示练习中应用所有变量/样本 。
    4、: 指定感爱好的样本 。描述同上 。
    5、: SVM参数 。
    的预言函数所有重载如下:
    1. float CvSVM::predict(const Mat& sample, bool returnDFVal=false ) const
    2. float CvSVM::predict(const CvMat* sample, bool returnDFVal=false ) const
    3. float CvSVM::predict(const CvMat* samples, CvMat* results) const

    1、: 须要猜测的输入样本 。
    2、: 须要猜测的输入样本们 。
    3、: 指定返回值类型 。若是值是true,则是一个2类分类题目,该办法返回的决定计划函数值是边沿的符号间隔 。
    4、: 响应的样本输出猜测的响应 。
    这个函数用来猜测一个新样本的响应数据() 。