非线性支持向量机及代码

1.问题引入

线性支持向量机模型假设其训练样本是线性可分的,即存在一个超平面将两个类完全分开。然而在现实任务中,或许样本空间根本就不存在一个超平面能进行分类。下图是不存在分类超平面的例子:
在这里插入图片描述
为了解决这个问题,可以将样本从原始空间映射到一个更高的特征空间,使得样本在高维的特征空间变得线性可分。映射到高维一定能线性可分吗?幸运地是,如果原始空间是有限的,则一定存在一个特征高维空间使得样本线性可分。

我们定义映射 ϕ ( x ) \phi(x) ϕ(x) x x x从m维空间映射到n维空间(n>m),于是在特征空间的超平面表示为:
f ( x ) = w T ϕ ( x ) + b \begin{aligned} f(x) = w^T\phi(x)+b \end{aligned} f(x)=wTϕ(x)+b
在特征空间的线性SVM模型为:
m i n [ w , b ] 1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w T ϕ ( x i ) + b ) ≥ 1 , i ∈ [ 1 , m ] \begin{aligned} &min_{[w,b]}\enspace \cfrac{1}{2}||w||^2 \\\\ &s.t.\enspace y_i(w^T\phi(x_i)+b) \geq 1,i\in[1,m] \end{aligned} min[w,b]21w2s.t.yi(wTϕ(xi)+b)1,i[1,m]
其对偶问题为:
m a x [ α ] ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ϕ ( x i ) T ϕ ( x j ) s . t . ∑ i = 1 m α i y i , α i ≥ 0 , i ∈ [ 1 , m ] \begin{aligned} &max_{[\alpha]}\enspace\sum_{i=1}^m \alpha_i- \cfrac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_j\phi(x_i)^T\phi(x_j) \\\\ &s.t.\enspace \sum_{i=1}^m \alpha_i y_i,\enspace\alpha_i \geq0,\enspace i \in[1,m] \end{aligned} max[α]i=1mαi21i=1mj=1mαiαjyiyjϕ(xi)Tϕ(xj)s.t.i=1mαiyi,αi0,i[1,m]
从上述表达式中发现,样本向高维空间映射后,难度在于计算 ϕ ( x i ) T ϕ ( x j ) \phi(x_i)^T\phi(x_j) ϕ(xi)Tϕ(xj),因为特征空间可能维度很高,甚至是无穷维。故而,我们定义这样一个函数:
k ( x i , x j ) = ϕ ( x i ) T ϕ ( x j ) \begin{aligned} k(x_i,x_j) = \phi(x_i)^T\phi(x_j) \end{aligned} k(xi,xj)=ϕ(xi)Tϕ(xj)
这就是核函数。引入核函数,我们可以避免高维空间的计算,也不用知道 ϕ ( . ) \phi(.) ϕ(.)的具体形式。

2. 核函数

核函数形式如下:
k ( x i , x j ) = ϕ ( x i ) T ϕ ( x j ) \begin{aligned} k(x_i,x_j) = \phi(x_i)^T\phi(x_j) \end{aligned} k(xi,xj)=ϕ(xi)Tϕ(xj)
我们举个例子来说明核函数的强大:
令 X = ( x 1 , x 2 ) T Y = ( y 1 , y 2 ) T ϕ ( X ) = ( x 1 2 , 2 x 1 x 2 , x 2 2 ) T ϕ ( Y ) = ( y 1 2 , 2 y 1 y 2 , y 2 2 ) T k ( X , Y ) = ϕ ( X ) T ϕ ( Y ) = x 1 2 y 1 2 + 2 x 1 x 2 y 1 y 2 + x 2 2 y 2 2 ‘ = ( x 1 y 1 + x 2 y 2 ) 2 = ( X T Y ) 2 \begin{aligned} 令 X=&(x_1,x_2)^T \\ Y=&(y_1,y_2)^T \\ \phi(X)=&(x_1^2,\sqrt{2}x_1x_2,x_2^2)^T \\ \phi(Y)=&(y_1^2,\sqrt{2}y_1y_2,y_2^2)^T \\ \\ k( X,Y)=&\phi(X)^T\phi(Y) \\=&x_1^2y_1^2+2x_1x_2y_1y_2+x_2^2y_2^2` \\=&(x_1y_1+x_2y_2)^2 \\= &(X^TY)^2 \end{aligned} X=Y=ϕ(X)=ϕ(Y)=k(X,Y)====(x1,x2)T(y1,y2)T(x12,

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值