线性可分SVM
假设超平面是二维的直线,用方程表示为y=1/2x+1,也可写成-x+2y+1=0,
f(x,y)=0;也可以写成矩阵相乘的形式,其中-1,2为方程中x,y的系数
(-1,2)就是法向量,记作w,所以超平面也可以表示为
若将某个点X0带入上式,结果大于0,表示x0位于法线的同方向,同理,结果小于0表示x0位于法线的逆方向
w*x+b = 0,w为法向量,x为参数, 若等于0,代表在超平面上,=1代表与法向量同方向,-1,逆方向
线性核只有一个参数c,c越大分割面的间距越窄;高斯核有2个参数,γ越大,分割面就越偏非线性,c越大,分割面间距越窄;
支撑向量:假设法向量w可由若干个αx相加线性组成,只有少数几个α不为0,称α不为0的x对应的样本为支撑点(x是n维的,也成支持向量)
上式为点到线的距离,如何确定最优直线?先求各个样本点到各直线的最小距离D,使得D最大的那个直线为最优直线。
样本点到超平面的距离不一定等于1,选择可以使得距离为1的那组w作为参数,目标函数的优化,等比例缩放
简化后的目标函数是带约束条件的,约束条件的个数等于样本个数
凸优化把极大极小问题转换成极小极大问题,可能会变小
α大于0的样本点就是支持向量
为什么要讨论线性SVM
线性SVM
这里的C就是上面的线性核的参数C
当C取无穷大时,线性SVM就退化成了线性可分SVM
SVM损失函数 hindge
SVM的损失函数考虑的是点到超平面的距离,在过渡分界面以外的点他们的阿尔法值等于0,不考虑(认为到超平面的距离大于1,损失值为0)。在过渡分界面之上以及以内的点α大于0,为支持向量,其中在过渡分界面之上的点,0<α<C(他们到超平面的距离等于1,损失值为0),而在过渡带内的点,他们的α值=C(他们到超平面的距离小于1,损失值为ζ(1-d))。
SVM的损失函数就是所有样本到超平面的距离ζ相加取最小
hinge损失函数=max(1-d,0);上图中蓝色函数
核函数
rbf中的γ就是1/2δ2,高斯分布的精度,γ越大分类越细;原损失函数中只出现了ε(xi)*ε(xj),因此核函数就是关于xi,xj的函数
核函数的作用:对于线性不可分的情况,把它映射到高维就可能分开了,而高维超平面在低维空间的投影就是分割线;这里1/2δ2也就是γ越大,会使得正例和负例离得越远,
高斯核函数本身具备一定的特征选择能力
β的值越大,precision占比越大,β越小,recall占比越大;一般β取1就行
案例
不平衡样本,y不只可以取±1,也可以正例取50,负例取-1;
ovr: one vs rest 多分类问题时,采取1对剩余的方式(还有一对一)
3分类问题,返回3列数据,每行数据中,哪一列值最大就属于哪个类别(包含正负号在内)
ovr:
ovo: