算法:
输入:线性可分训练集
T={(x1,y1),(x2,y2),⋯,(xN,yN)}
,其中
xi∈Rn,yi∈{−1,+1}
输出:分类决策函数
(1) 选择适当的核函数
K(x,z)
和惩罚参数
C>0
,构造并求解凸二次规划问题
minαs.t.12∑i=1N∑j=1NαiαjyiyjK(xi,xj)−∑i=1Nαi∑i=1Nαiyi=00≤αi≤C,i=1,2,⋯,N
求得最优解
α∗=(α∗1,α∗2,⋯,α∗N)T
.
(2) 选择 α∗ 的一个分量 0<α∗j<C ,计算
b∗=yj−∑i=1Nα∗iyiK(xi,xj)
(3) 构造分类决策函数:
f(x)=sign(∑i=1Nα∗iyiK(x,xi)+b∗)
常用核函数:
多项式核函数
K(x,z)=(x⋅z+1)p
高斯核函数
K(x,z)=exp(−∥x−z∥22σ2)
一些说明:
当训练样本容量很大时,一般的凸二次规划最优化算法效率比较低,可以使用序列最小最优化 (sequential minimal optimization, SMO) 算法。