最近在研读《机器学习实战》这本书,发现支持向量机这一章理论部分比较少,不太好理解。针对SVM,虽然有很多Python的库可以调用,但是在理论方面还是需要好好研究一下的。
基本概念
- 超平面:分类的决策边界
- 支持向量:离分割超平面最近的那些点
- 间隔(margin):支持向量到分割超平面的距离
- 目标:最大化间隔
优化目标
为了最大化支持向量到分隔面的距离(找到最小间隔的数据点,即支持向量,然后对该间隔最大化),可以写作:
argmaxw,b{
minn(label⋅(wTx+b))⋅1||w||}
subject to: label⋅f(x)=label⋅(wTx+b)≥1,i=1,2,...,n
其中, label 为类别标签,±1,是点 x 的分类值;
1||w|| 是为了防止 label⋅(wTx+b) 随着w和b等比例增大。
支持向量使得上述约束条件的等号成立,因此该问题可以转换为: