发布于 

机器学习V - 支持向量机(Support Vector Machines)

7. 支持向量机(Support Vector Machines)

先从SVM模型的分类问题入手,上述已经学习的逻辑回归的代价函数如下

为了便利,我们使用$cost()$来代替其中的一部分

与逻辑回归不同的是,SVM的$cost()$函数需要满足以下条件

逻辑回归的分类界限为0,而SVM为1和-1,更加严格,这样也就会用一个区域两组样本分开,不仅仅是一条线,而最大化这个区域,也就是最好的分类器。

并且 $C = \frac{1}{\lambda}$,以及忽略常数项,SVM的代价函数为

假设函数为

7.1 核函数

核函数是将训练样本进行增维,转化为线性可分

Mathematics SVM - input and featured space

根据$(x^{(1)}, y^{(1)}), (x^{(2)}, y^{(2)}),…, (x^{(m)}, y^{(m)})$

选择$l^{(1)} = x^{(1)}, l^{(2)} = x^{(2)},…, l^{(m)} = x^{(m)}$

所以$f_m^{(i)} = similarity(x^{(i)}, l^{(m)})$

其中高斯核函数为

则有向量

使用了核函数的SVM模型的假设为:

根据$x$,计算出特征$f \in \mathbb{R}^{m+1}$,当$\theta^Tf\geq0$时预测$y=1$

代价函数为:

7.1.1 SVM参数

  • $C\ \ or \ \ 1/\lambda$

    $C$大会导致低误差,高方差,反之亦然

  • $\sigma$

    $\sigma$大会导致特征比较平滑,高误差,低方差

7.2 应用

$n$ = 特征数量,$m$ = 样本量

$n$大(相对于样本量来说),使用逻辑回归,或者不使用核函数的SVM

因为样本量多时,使用核函数很慢,需要遍历所有特征

如果$n$小,可以使用核函数的SVM

如果$n$小,$m$大,建立其他特征,之后使用逻辑回归,或者不使用核函数的SVM