@hanxiaoyang
2017-12-14T12:42:54.000000Z
字数 1812
阅读 2126
个人博客
作者:寒小阳
时间:2016年9月。
出处:http://blog.csdn.net/han_xiaoyang/article/details/52678373
声明:版权所有,转载请联系作者并注明出处
欠的总归是要还的,SVM这么神圣的算法是每个学习machine learning的同学可能会头痛却又不得不面对的,即使到现在为止博主这样的Math/CS渣都觉得一定没有领悟到SVM精髓,所以整理了一些边边角角的碎碎念,颤颤巍巍放到这个系列里,算是自己做个总结,也希望能对大家有一点点的帮助。这个SVM系列大部分内容来自Alexandre KOWALCZYK大神的SVM Tutorial以及一些简单的个人理解,会尽量放慢步伐,力争把东西交代得更清楚。这一节是第一部分,很简单,我们来认识一下SVM中很重要的一个概念:Margin,也就是间隔。
SVM的目标是利用训练数据集的间隔最大化找到一个最优分离超平面
首先和逻辑斯蒂回归和朴素贝叶斯一样,我们需要一些打标签的数据用于训练,这也就是说SVM是一个有监督学习算法。
同样,SVM是一个分类算法,和逻辑斯蒂回归和朴素贝叶斯一样,可以用于预测数据属于哪个类别。
典型的分类问题比如结果预测(比如泰坦尼克号生存结果)和垃圾邮件分类,或者下面这个简答的人群分类小例子:
上图是人的身高和体重绘制的散点图,使用支持向量机(SVM),可以尝试回答以下问题:
给定一个特定的数据点(重量和高度),这个人是一个男人还是一个女人?
例如:有人高175厘米,重80公斤,他是男人还是女人呢?
在图中我们可以看出,我们是有办法可以分离这两类样本点的。例如:我们可以画一条线,使得所有的男性数据点在直线上方,所有的女性数据点在直线的下方。我们知道在逻辑斯蒂回归当中,这条直线叫做决策边界,在SVM当中我们暂且把它叫做分离超平面,大概是下图这个样子的,但是它和LR里面的决策边界有一些小小的不同,一会儿我们会提到。
如果它仅仅是一条线,我们为什么称它为一个超平面?
上面只是二维空间中的一个小例子,但事实上SVM在任意维度上均有效。
超平面是平面的一般化
- 在一维的平面中,它是点
- 在二维中,它是线
- 在三维中,它是面
- 在更高的维度中,我们可以称之为超平面
点L是一维空间下的分离超平面
什么是最优分离超平面?
OK,重点来了,刚才提到了逻辑斯蒂回归当中,有个类似的概念叫做决策边界,在SVM当中把它叫做分离超平面,事实上,你找到了一个分离超平面,但那不意味着它是最优的那个!
回到刚才的例子中,我们可以找到好几个分离超平面。他们每一个都是正确的,可以成功将数据集中的男性和女性划分两边。
但是是不是说这些分离超平面都一样好呢?
OK,咱们一起来看看,假设我们选择那个绿色的分离超平面,然后咱们用在现实生活中的数据上进行分类。
你会发现有一些女性被分错了!!直观上非常好理解,这个分类超平面太接近女性(红色样本点)了,那它对noise/异常点/临近边界的点处理得并不好。
所以大家都想到了,我么要选择这样一个超平面--尽可能的远离所有类别的数据点:
这次看起来好多了,再用刚才新加的样本点去分类,你发现这次它健壮多了,可以好好地把它们分对了。
对,这就是SVM要做的事情,支持向量机就是要找到这样一个最优分类超平面,保证:
- 正确地对训练数据进行分类
- 对未知数据也要进行很好的分类
.
所以这和Margin/间隔有什么关系呢?又怎么找到它呢
对应上图,一句话概括:Margin就是最优分离超平面的间隔。
给定一个特定的超平面,我们可以计算出这个超平面与和它最接近的数据点之间的距离。间隔(Margin)就是二倍的这个距离。
一般来说,间隔(Margin)中间是无点区域。这意味着里面不会有任何点。(注:在数据有噪声的情况下,可能达不到这么理想的状况,所以我们后面会引入软间隔分类器)
我们从刚才的分割超平面里再选一个,间隔(Margin)会看起来像这样:
可以清楚地看出,B的间隔要小于A的间隔。
我们有以下的观察结果:
- 如果一个超平面有非常接近的一个数据点,那么间隔会小。
- 如果一个超平面离数据点越远,那么间隔越大。
这意味着最优超平面将有最大的间隔。
我们后面也会看到SVM是利用间隔最大化求得最优分离超平面。
欢迎浏览SVM碎碎念part2:SVM中的向量与空间距离