0 SVM的原理?

  支持向量机的基本模型是定义在特征空间上间隔最大的线性分类器,间隔最大化使得它有别于感知机。它是一种二分类模型,当采用核技巧之后,支持向量机可以用于非线性分类。

  1 线性可分支持向量机(硬间隔支持向量机):当训练数据线性可分时,通过硬间隔最大化,学得一个线性可分支持向量机;

  2 线性支持向量机(软间隔支持向量机):当训练数据近似线性可分时,通过软间隔最大化,学得一个线性支持向量机;

  3 非线性支持向量机:当训练数据线性不可分时,通过使用核技巧以及软间隔最大化,学习得一个非线性支持向量机。

  注:硬间隔:要求所有样本都必须分类正确

    软间隔:可以允许支持向量机在一些样本上出错

1 SVM中的核函数是什么?

      支持向量机通过非线性变换Φ(x),把输入数据映射到高维特征空间,特征空间维数可能非常高,如果支持向量机求解只用到非线性变换的内积操作,

      而在低维空间恰好存在一个函数就等于这个非线性变换的内积K( x, x′) =<φ( x) ⋅φ( x′) > ,那么支持向量机就不用计算复 杂的非线性变换,而由这个函数

   K(x, x′) 直接得到非线性变换的内积,使大大简化了计算。这样的函数 K(x, x′) 称为核函数

   一句话解释: 核函数是把输入向量丛低维空间映射到高维空间的一种方法

  

 2  为什么要使用核函数?

  (1)核函数的引入避免了“维数灾难”,大大减小了计算量。而输入空间的维数n对核函数矩阵无影响,因此,核函数方法可以有效处理高维输入。

  (2)无需知道非线性变换函数Φ的形式和参数.

  (3)核函数的形式和参数的变化会隐式地改变从输入空间到特征空间的映射,进而对特征空间的性质产生影响,最终改变各种核函数方法的性能。

3  常用核函数都有哪些?

    1  多项式核函数

    K(x,z) = (x*z + 1)

   2  高斯核函数

    K(x,z) = exp(-||x - z||2 ⁄ 2*σ2)

   3 sigmod核函数

    K(x,z) = tanh(Υ*||x - z ||2 + r)

   3  字符串核函数

    应用场景:在文本分类,信息检索,生物信息学

注:写出来比较麻烦自行寻找答案 

4 如何选取核函数?

  1寻找领域相关专家根据数据的分布来选择合适的核函数  

  2交叉验证多个核函数,比较效果选择最好

  3按照经验,一般选择高斯核函数,因为高斯核函数可以映射到无穷维(具体推倒会在下一篇博客专门写出)

    因为高斯核函数中的f(x) = exp(-||x - z||2 ⁄ 2*σ2) 经过泰勒公式展开可以化为  Φ(x)T*Φ(x)  

    其中Φ(x)   = exp(-x2/2σ2)(1,√1/2! * x22,...,√1/n! * xnn

5 SVM的损失函数?怎么理解?

  SVM的损失函数为hinge 损失,∑L(Y(W * X + b)  

              其中L(Y(W * X + b)  = [1 - yi * (W * X i + b)]+

              [Z]+ :max(0,Z )

  当样本点被正确分类且函数间隔(确信度)大于1的时,损失是0

  否则损失是 1 - yi * (W * Xi  + b)

6 使用高斯核函数,请描述SVM中的C和高斯核函数中的σ对分类器的影响?

  SVM 中的C为惩罚参数,松弛变量的的系数,表示误分类点对目标函数的影响大小,C大表示影响大,C小表示影响小  

  高斯核函数中的σ,控制映射为高维空间的变量,如果 σ 选得很大的话,高次特征上的权重实际上衰减得非常快,所以实际上(数值上近似一下)相当于一个低维的子空间;

  反过来,如果 σ 选得很小,则可以将任意的数据映射为线性可分——当然,这并不一定是好事,因为随之而来的可能是非常严重的过拟合问题。不过,总的来说,通过调控

  参数σ ,高斯核实际上具有相当高的灵活性,也是使用最广泛的核函数之一。