支持向量机上(SVM上)算法
基础介绍
最早1963年提出,目前版本在1993年提出,在1995年发表;
一般框架
训练集=>提取特征向量=>结合一定算法(分类器:比如决策树,KNN)=>得到结果
SVM寻找区分两类的超平面,使边际(margin)最大
问:如何选取边际最大的超平面?
答:超平面到一侧最近点的距离等于到另一侧最近点的距离,两侧的两个超平面平行。
线性可区分与线性不可分
标准:能否找到最大超平面来区分。
定义
超平面定义: W * X+ b=0
W:权重的向量,W={w1,w2,w3,…wn}
[n是特征值的个数,X是训练实例,b是bias]
例子
假设2维特征向量:X=(x1,x2)
把b想象为额外的weight;
此时超平面方程变为:w0+w1x1+w2x2=0
所有超平面右上方的点满足:w0+w1x1+w2x2>0
所有超平面左下方的点满足:w0+w1x1+w2x2<0
调整weight,使超平面定义边际的两边:
H1:w0+w1x1+w2x2>=1 for yi=+1
H2:w0+w1x1+w2x2<=1 for yi=-1
综上:
yi(w0+w1x1+w2x2)>=1
所有坐落在边际的两边的超平面上的被称作“支持向量”
分界的超平面和H1或H2上任意一点间的距离为:1/(||w||)
||w||是向量的范数
故,最大边际距离:2/(||w||)
决定边界:
d(X^T)={(i从从1到l) yiaiXi*x^T}+b0
yi是支持向量点
Xi是类别标记
X^t是要测试的实例
ai和b0是单一数值型参数
l是支持向量的个数
-文章笔记通过学习B站视频资源所做