支持向量机(二)线性支持向量机

支持向量机(一)线性可分支持向量机

支持向量机(二)线性支持向量机

支持向量机(三)非线性支持向量机与核函数

支持向量机(四)SMO算法



一、线性支持向量机

线性可分支持向量机对线性不可分数据不适用,因为这时的不等式约束不成立。需要修改硬间隔最大化为软间隔最大化。

线性不可分意味某些样本点 (xi,yi) 不满足函数间隔 1 的约束条件。可以对每个样本点 (xi,yi) 引进一个松弛变量 ξi0,使函数间隔加上松弛变量 1。即:

yi(ωxi+b)1ξi

对每个松弛变量 ξi,支付一个代价 ξi。目标函数由原来的 12||ω||2 变为

(1)12||ω||2+Ci=1Nξi

C>0 为惩罚参数,C 值越大表示对误分类惩罚越大。

最小化目标函数 (1) 的两层含义:使 12||ω||2 尽量小即间隔尽量大,同时使误分类点的个数尽量小,C 是调和二者的系数。

线性支持向量机的优化问题作为原始问题

(2)minω,b,ξ    12||ω||2+Ci=1Nξi(3)s.t.    yi(ωxi+b)1ξi,    i=1,2,...,N(4)ξi0,    i=1,2,...,N

原始问题 (2)(4) 是凸二次规划问题,因而 (ω,b,ξ) 的解是存在的。且 ω 的解是唯一的,b 的解可能不唯一,而是存在一个区间内。



二、对偶算法

原始问题 (2)(4) 的对偶问题

(5)minα    12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi(6)s.t.    i=1Nαiyi=0(7)0αiC,    i=1,2,...,N

原始最优化问题 (2)(4) 的拉格朗日函数是

(8)L(ω,b,ξ,α,μ)=12||ω||2+Ci=1Nξii=1Nαi(yi(ωxi+b)1+ξi)i=1Nμiξi

其中,αi0μi0

对偶问题是拉格朗日函数的极大极小问题。

首先 L(ω,b,ξ,α,μ)ω,b,ξ 的极小,由

ωL(ω,b,ξ,α,μ)=ωi=1Nαiyixi=0

bL(ω,b,ξ,α,μ)=i=1Nαiyi=0

ξiL(ω,b,ξ,α,μ)=Cαiμi=0

(9)ω=i=1Nαiyixi

(10)i=1Nαiyi=0

(11)Cαiμi=0

将式 (9)(11) 代入式 (8),得

minω,b,ξL(ω,b,ξ,α,μ)=12i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi

再对 minω,b,ξ L(ω,b,ξ,α,μ)α 的极大,即得对偶问题:

(12)maxα    12i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi(13)s.t.    i=1Nαiyi=0(14)Cαiμi=0(15)αi0(16)μi0,    i=1,2,...,N

将对偶最优化问题 (12)(16) 进行变换;利用等式约束 (14) 消去 μi,从而只留下变量 αi,并将约束 (14)(16) 写成

(17)0αiC

再将目标函数求极大转换为求极小,得到对偶问题 (5)(7)。通过求解对偶问题得到原始问题的解。


定理 :α=(α1,α2,...,αN)T 是对偶问题的解,若存在 α 一个分量 αj0<αj<C,按下式求原始问题的解 ωb

(18)ω=i=1Nαiyixi(19)b=yji=1Nαiyi(xixj)

根据 KKT 条件可证明。


1.线性支持向量机对偶算法

输入:训练集 T=(x1,y1),(x2,y2),...,(xN,yN),其中 yi(1,1)

输出:分离超平面、分类决策树

① 选择惩罚参数 C>0,构造并求解凸二次规划问题

minα    12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαis.t.    i=1Nαiyi=00αiC,    i=1,2,...,N

求得最优解 α=(α1,α2,...,αN)T

② 计算 ωb

ω=i=1Nαiyixi

选择 α 一个分量 αj0<αj<C,计算

b=yji=1Nαiyi(xixj)

③ 求得分离超平面

ωx+b=0

分类决策函数:

f(x)=sign(ω x+b)

理论上原始问题 (2)(3)b 的解可能不唯一,然而在实际应用中,往往只会出现算法中的情况。



三、支持向量

在线性不可分的情况下,对偶问题 (5)(7) 的解 α=(α1,α2,...,αN)T 中对应 αi>0 的样本点 (xi,yi) 的实例 xi 称为支持向量(软间隔的支持向量)。

如下图,”○“ 表示正例,”ד 表示负例,实线表示分离超平面,虚线表示间隔边界,ξi||ω|| 表示样本 xi 到间隔边界的距离。

这时的支持向量比线性可分的情况复杂。支持向量 xi 或者在间隔边界上,或者在间隔边界与分离超平面之间,或者在分离超平面误分一侧。

αi<C,则 ξi=0,支持向量 xi 在间隔边界上;

αi=C0<ξi<1,支持向量 xi 在间隔边界与分离超平面之间;

αi=Cξi=1xi 在分离超平面上;

αi=Cξi>1xi 在分离超平面误分类一侧。



posted @   做梦当财神  阅读(582)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示