Svm的一些小碎碎(个人整理)

原文章地址:寒小阳http://blog.****.net/han_xiaoyang/article/details/52678373

1.引言

欠的总是要还的,SVM这么神圣的算法是每个从事数据挖掘/数据分析的朋友可能会头疼的东西,又是不得不面对的,

因为最近准备应聘,所以又将机器学习的这些算法又整理一遍,复习一下,希望我好运!

2.支持向量机(SVM)的学习目标

 SVM的目标是利用训练数据集的间隔最大化找到一个最优分离超平面

 首先SVM和朴素贝叶斯一样,需要一些用于训练的数据进行训练模型,也就是说SVM是一个有监督学习算法.

SVM也是一个分类算法,和朴素贝叶斯一样,可以用来预测数据属于哪个类别。比如Kg比赛典型的例子:泰坦尼克号生存结果和垃圾邮件分类.

举一个简单的例子方便理解:

 Svm的一些小碎碎(个人整理)

图中是人的身高和体重绘制的散点图,使用支持向量机(SVM),可以尝试一下这些问题:

给定一个特征的数据点(重量和身高),这个人的性别是什么?

比如现在有一个人身高为175cm,体重为80kg,他是男性还是女性呢?

很显然,结合上边的图,此人为男性。

3.什么是分离超平面

 结合上图很容易就可以看出,我们是有办法可以分离这两类样本点的.比如可以画一条直线,使的将男性和女性分开,在SVM中我们把这条线叫做分离超平面,大概就是下图的这个样子:

Svm的一些小碎碎(个人整理)

 那么问题来了:这明明是一条直线,为什么称他为一个超平面

上边的小例子中知识只是在二维空间中的,那么如果如果在三维空间中呢?

所谓超平面是平面的一般化:

 在一维空间中,它是点

 在二维空间中,它是线

 在三维空间中,它是面

 在四维以及更高维的空间中,我们就称为超平面

什么是最优分离超平面?

回到刚才的例子当中,我们可以找到好几个分离超平面,他们每一个都是正确的,可以成功按照性划分

Svm的一些小碎碎(个人整理)

显然不能随便选择一条分割线,就确定最终的结果,那就太荒唐了!
所以我们选择选择这样的一个超平面:最可能的远离所有类别的数据点;

Svm的一些小碎碎(个人整理)

 我们选择这条线为最优,看起来好多了,可以将他们好好的分对了!

这就是SVM要做的事情,支持向量机就是要找到这样一个最优分类超平面,保证:

1.准确无误的将训练数据进行分类

2.对测试集数据也要进行很好的分类

那么最早说这篇博客主要说Margin/间隔有什么关系呢?又怎么找到呢?

Svm的一些小碎碎(个人整理)

Svm的一些小碎碎(个人整理)

结合上边的图,简单的说就是:Margin就是最优分离超平面的间隔

给定一个特征的超平面,我们可以计算出这个超平面与和他最接近的数据点之间的距离.间隔就是二倍的这个距离

一般的说,间隔中间是无点区域.这意味着里边不会有任何的数据元素.(如果数据中存在噪声的,可能不会这么理想)

从刚才的图中选一个,间隔hi看起来像这个样子:

Svm的一些小碎碎(个人整理)

 可以看到:图中B的间隔小于A的间隔.

 我们有以下的观察结果:

 1.如果一个超平面有非常接近的一个数据点,那么间隔会小

 2.如果一个超平面离数据点越远,那么间隔越大.

 这就意味着 "最优超平面将有最大的间隔"

接下来准备写SVM是利用间隔最大化求得最优分离超平面的!

小阳大佬博客写的非常不错,经常学习,学到了很多东西,这次自己学习写了一下!再次致谢!