赞
踩
大部分资料都在讲SVM的kernel等看似高大上的东西,却忽略了SVM的模型表达式这一关键,造成大家看SVM资料觉得云里雾里的感觉。
本文舍末求本,从SVM的模型理解开始,带大家理解SVM的基本思想,理解各个参数对SVM的性能影响。
以二维平面上的分类为例,下面给出了不同的分类可能,哪个才是最优的分类呢?
可以看出第一种分类方法是最好的,为什么呢?因为它的分类平面到两类边界的距离(Margin)最大。
所以SVM也叫Large Margin分类器。
首先,线性模型的表达式为
其中
把线性模型表达式中的xi
其中
* fi
可见
* SVM和线性回归是非常类似的
* 由于有了非线性多项式项,SVM对非线性的拟合能力很强,但已被噪声影响(拟合能力过强)
理解了SVM的模型,也就不觉得它有多复杂了。
SVM与线性回归的代价函数有很大的不同。
下面对比SVM与Logistic回归(把线性回归的结果作为Logistic函数的输入)的代价函数区别。(代价函数的物理含义就是预测值与真实值之间的误差)
将h(x)
SVM的代价函数与Logistic回归的代价函数比较接近。下图中的蓝色曲线是Logistic归回代价函数中的两个表达式。
红色曲线是逼近蓝色函数的函数。
用cost1(z)和cost0(z)代替h(x),可得SVM的代价函数
其中
可见,SVM的代价函数与Logistic回归的代价函数也是很类似的。
SVM模型表达式中的fi是xi的核函数。核函数能提高模型的Feature维度(低维到高维),从而使SVM具有较好的非线性拟合能力。
假设一个SVM模型的表达式如下$$
模型的输入x是二维的(用x1和x2表示),先手工标记三个点
对每一个模型的输入x,另核函数为x与三个点的相似度:
若l(1)=[3;5],σ=1,则f1=exp(−(x1−3)2−(x2−5)2)。这是一个三维曲面。
核函数将二维的x提高到了三维空间。
上面的相似度函数,就是高斯核,其定义为
由其定义可知,如果x与手工选取的点l(i)很接近,则fi=1。否则fi=0
且高斯核函数的最大值为1,最小值为0。
综上,SVM最重要的参数有2个:C与核函数中的σ
σ的大小对核函数形状的影响关系见下图
使用SVM时,有两个点要注意:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。