支持向量机(SVM)简单小结

来源:互联网 发布:运营商大数据应用案例 编辑:程序博客网 时间:2024/06/12 22:19

支持向量机,就是常说的SVM,为学习复杂的非线性方程提供一种更为清晰,更加强大的方式。

模型优化

我们从逻辑回归对SVM的cost function进行推导演绎。

回顾逻辑回归我们可以知道,当z>>0的时候可以认为y=1;当z<<0时候,y=0。

由上图可以知道,我们由逻辑回归的costfunction使用红色的折线进行近似替代,因此由逻辑回归的costFunction:

我们可以得到SVM的cost Function如下:

在这里我们可以将C看作是1/λ。

大边界直观理解

我们有时候将SVM看作是大间距分类器,接下来将介绍其中的含义,并有助于我们直观理解SVM模型的假设。

这是我的支持向量机模型的代价函数,在左边这里我画出了关于 z 的代价函数 cost1(z),
此函数用于正样本,而在右边这里我画出了关于 z 的代价函数 cost0(z),横轴表示 z,现在让
我们考虑一下,最小化这些代价函数的必要条件是什么。如果你有一个正样本,y 等于 1,
则只有在 z 大于等于 1 时,代价函数 cost1(z)才等于 0。换句话说,如果你有一个正样本,我
们会希望z>=1,反之,如果 y 是等于 0 的,我们观察一下,函数 cost0(z),它只有在 z<=1
的区间里函数值为 0。这是支持向量机的一个有趣性质。事实上,如果你有一个正样本 y 等
于 1,则其实我们仅仅要求z大于等于 0,就能将该样本恰当分出,这是因为如果z>0大的话,我们的模型代价函数值为 0,类似地,如果你有一个负样本,则仅需要z<=0 就会将负例正确分离,但是,支持向量机的要求更高,不仅仅要能正确分开输入的样本,即不仅仅要求z>0,我们需要的是比 0 值大很多,比如大于等于 1,我也想这个比 0 小很多,比如我希望它小于等于-1,这就相当于在支持向量机中嵌入了一个额外的安全因子。或者说安全的间距因子

因此如果我们在使用SVM的时候,只要C的值合适,我们就可以得到如图中黑色的Decision Boundary。
这样的决策边界会给两种数据样本留以足够的间距,因此有时候说SVM是大间距分类器。当C设置的不要太大,则你最终会得到这条黑线,当然数据如果不是线性可分的,如果你在这里有一些正样本或者你在这里有一些负样本,则支持向量机也会将它们恰当分开。因此,大间距分类器的描述,仅仅是从直观上给出了正则化参数 C 非常大的情形,同时,要提醒你 C 的作用类似于 1/λ,λ是我们之前使用过的正则化参数。这只是C 非常大的情形,或者等价地λ非常小的情形。你最终会得到类似粉线这样的决策界,但是实际上应用支持向量机的时候,当 C 不是非常非常大的时候,它可以忽略掉一些异常点的影响,得到更好的决策界。甚至当你数据不是线性可分的时候,支持向量机也可以给出好的结果。

因此,

C 较大时,相当于 λ 较小,可能会导致过拟合,高方差。

C 较小时,相当于 λ 较大,可能会导致低拟合,高偏差。

核函数

我们之前讨论过可以使用高级数的多项式模型来解决无法用直线进行分隔的分类问题:例如下图:

给定一个训练实例x,我们利用x的各个特征与我们预先选定的标志l1,l2,l3的相似程度来选取新的特征f1,f2,f3.

例如:我们使用高斯核函数来衡量x中的所有特征和标志位l1的之间的距离的和。

其中:

如何选择标志?
我们通常是根据训练集的数量选择地标的数量,即如果训练集中有 m 个实例,则我们
选取 m 个地标,并且令:l(1)=x(1),l(2)=x(2),…,l(m)=x(m)。这样做的好处在于:现在我们得到的新特征是建立在原有特征与训练集中所有其他特征之间距离的基础之上的,

下面是支持向量机的两个参数 C 和 σ 的影响:

C 较大时,相当于 λ 较小,可能会导致过拟合,高方差;

C 较小时,相当于 λ 较大,可能会导致低拟合,高偏差;

σ 较大时,导致高方差;

σ 较小时,导致高偏差。

下面是一些普遍使用的准则:
n 为特征数,m 为训练样本数。

(1)如果相较于 m 而言,n 要大许多,即训练集数据量不够支持我们训练一个复杂的非
线性模型,我们选用逻辑回归模型或者不带核函数的支持向量机。

(2)如果 n 较小,而且 m 大小中等,例如 n 在 1-1000 之间,而 m 在 10-10000 之间,
使用高斯核函数的支持向量机。

(3)如果 n 较小,而 m 较大,例如 n 在 1-1000 之间,而 m 大于 50000,则使用支持向量机会非常慢,解决方案是创造、增加更多的特征,然后使用逻辑回归或不带核函数的支持向量机。

原创粉丝点击