机器学习系列19:将核函数应用于支持向量机

  • 2019 年 10 月 7 日
  • 笔记

当我们在已知参数的情况下,如何用带有核函数的支持向量机(SVM)去训练假设函数呢?

首先我们将样本做为标记:

对于每一个 x,都要计算出它的特征 f,f 为一个向量:

如果下式成立,就可以预测 y 等于 1,也就是为正样本:

但是如何选取参数呢?我们最小化下面这个函数的时候,就可以得到参数向量:

现在还有两个系数没有选择,C 和 σ^2 。C 相当于 1/λ,之前我们学过,λ 的变化会影响高偏差或高方差。因此按照 1/λ 对高偏差或高方差的影响表现选取即可。

现在我们用数据实际观察一下 C 对 SVM 的影响。当 C 很小时,对于下列数据的决策边界如下:

如果将 C 换成 100,我们再来看此时的决策边界:

现在你对 C 是不是有一个直观的认识了呢?

σ^2 很大时,图像为:

特征 f 变化平滑,因此表现为高偏差,低方差。σ^2 很小时,图像为:

特征 f 变化激烈,因此表现为高方差,低偏差。

这样,一个完整的利用核函数的支持向量机算法就算是完成了。

如何选择使用逻辑回归或者SVM

如果特征的数量远大于样本数,就要用逻辑回归或者线性核函数(不带核函数的SVM)。

如果特征的数量比较小,而样本的数目正好合适,就用高斯核函数。

如果特征的数量比较小,而样本的数目非常大,就要用逻辑回归或者线性核函数(不带核函数的SVM)。