支持向量机预测模型 支持向量机( 三 )


再用 max_depth=4 试试,测试集准确度为95.1%,泛化性能又提高了 。可!

支持向量机预测模型 支持向量机

文章插图
支持向量机(SVM)基本原理 看了很多关于SVM的博客,但是常常只能保存书签之后看,有时候有的博客就突然没了,这里就作为搬运工总结一下之后自己看吧 。主要内容来自于:
支持向量机通俗导论(理解SVM的三层境界)
线性回归
给定数据集, 其中,,线性回归试图学习到一个线性模型,尽可能地输出正确标记.
如果我们要用线性回归算法来解决一个分类问题,(对于分类,y 取值为 0 或者 1),但如果你使用的是线性回归,那么假设函数的输出值可能远大于 1,或者远小于 0,就算所有训练样本的标签 y 都是 0 或 1但是如果算法得到的值远大于 1 或者远小于 0 的话,就会感觉很奇怪 。所以我们在接下来的要研究的算法就叫做逻辑回归算法,这个算法的性质是:它的输出值永远在 0 到 1 之间 。
所以逻辑回归就是一个分类算法,这个算法的输出值永远在 0 到 1 之间.
我们先看二分类的LR,具体做法是:利用sigmoid 函数,将每一个点的回归值映射到0,1之间.sigmoid函数特性如下:
如图所示,令, 当 z0, z 越大, sigmoid 返回值越接近1(但永远不会超过1). 反之,当z0时,z 越小, sigmoid 返回值越接近0(但永远不会小于0).
支持向量机 ,因其英文名为support vector machine,故一般简称SVM,通俗来讲,它是一种二类分类模型,其基本模型定义为 特征空间 上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解 。
线性分类器
给定一些数据点,它们分别属于两个不同的类,现在要找到一个线性分类器把这些数据分成两类 。如果用x表示数据点,用y表示类别(y可以取1或者-1,分别代表两个不同的类),一个线性分类器的学习目标便是要在n维的数据空间中找到一个超平面(hyper plane),这个超平面的方程可以表示为( wT中的T代表转置):
logistic回归目的是从特征学习出一个0/1分类模型,而这个模型是将特性的线性组合作为自变量,由于自变量的取值范围是负无穷到正无穷 。因此,使用logistic函数(或称作sigmoid函数)将自变量映射到(0,1)上,映射后的值被认为是属于y=1的概率 。
假设函数:
其中x是n维特征向量,函数g就是logistic函数 。
图像为:
在超平面w x+b=0确定的情况下,|w x+b|能够表示点x到距离超平面的远近,而通过观察w x+b的符号与类标记y的符号是否一致可判断分类是否正确,所以,可以用(y (w*x+b))的正负性来判定或表示分类的正确性 。于此,我们便引出了函数间隔(functional margin)的概念 。
定义函数间隔(用表示)为
而超平面(w,b)关于T中所有样本点(xi,yi)的函数间隔最小值(其中,x是特征,y是结果标签,i表示第i个样本),便为超平面(w, b)关于训练数据集T的函数间隔:
但这样定义的函数间隔有问题,即如果成比例的改变w和b(如将它们改成2w和2b),则函数间隔的值f(x)却变成了原来的2倍(虽然此时超平面没有改变),所以只有函数间隔还远远不够 。
事实上,我们可以对法向量w加些约束条件,从而引出真正定义点到超平面的距离--几何间隔(geometrical margin)的概念 。
假定对于一个点 x ,令其垂直投影到超平面上的对应点为 x0 ,w 是垂直于超平面的一个向量,为样本x到超平面的距离,如下图所示:
根据平面几何知识,有
其中||w||为w的二阶范数(范数是一个类似于模的表示长度的概念),是单位向量(一个向量除以它的模称之为单位向量) 。
又由于x0 是超平面上的点,满足 f(x0)=0,代入超平面的方程,可得,即
随即让此式的两边同时乘以,再根据和,即可算出:
为了得到的绝对值,令乘上对应的类别 y,即可得出几何间隔(用表示)的定义:
从上述函数间隔和几何间隔的定义可以看出:几何间隔就是函数间隔除以||w||,而且函数间隔y (wx+b) = y f(x)实际上就是|f(x)|,只是人为定义的一个间隔度量,而几何间隔|f(x)|/||w||才是直观上的点到超平面的距离 。
对一个数据点进行分类,当超平面离数据点的“间隔”越大,分类的确信度(confidence)也越大 。所以,为了使得分类的确信度尽量高,需要让所选择的超平面能够最大化这个“间隔”值 。这个间隔就是下图中的Gap的一半 。
通过由前面的分析可知:函数间隔不适合用来最大化间隔值,因为在超平面固定以后,可以等比例地缩放w的长度和b的值,这样可以使得的值任意大,亦即函数间隔可以在超平面保持不变的情况下被取得任意大 。但几何间隔因为除上了,使得在缩放w和b的时候几何间隔的值是不会改变的,它只随着超平面的变动而变动,因此,这是更加合适的一个间隔 。换言之,这里要找的最大间隔分类超平面中的“间隔”指的是几何间隔 。

秒懂生活扩展阅读