已知正例点 x1 = (1,1) T , x2 = (0,2) T ,标签分别为 y1 = 1 , y2 = 1 ,负例点 x3 = (2,-1) T ,标 签为 y3 = -1 ,使用SMO算法,求得分离超平面并写出支持向量。
时间: 2023-10-04 19:08:43 浏览: 191
更快的一维线性插值:interp1qr:与内置 MATLAB 函数“interp1q”功能相同,但速度快 3 倍。-matlab开发
首先需要将数据转换成对偶问题的形式。假设正例点有m个,负例点有n个,则对偶问题的目标函数为:
$$
L(\alpha) = \sum_{i=1}^{m}\alpha_i - \frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_jx_i^Tx_j
$$
同时,需要满足以下约束条件:
$$
\left\{
\begin{aligned}
\sum_{i=1}^{m}\alpha_iy_i &= 0 \\
0 \leq \alpha_i \leq C, i &= 1,2,\dots,m
\end{aligned}
\right.
$$
其中,$\alpha_i$为拉格朗日乘子,$C$为惩罚参数。
将数据代入目标函数,可以得到:
$$
L(\alpha) = \alpha_1 + \alpha_2 - \frac{1}{2}(\alpha_1^2 + \alpha_2^2 + 2\alpha_1\alpha_2) + \alpha_3 - \frac{1}{2}(\alpha_1\alpha_3 + \alpha_2\alpha_3)
$$
上述目标函数的导数为:
$$
\frac{\partial L}{\partial \alpha_i} = 1 - \alpha_i(y_1y_i(x_1^Tx_i) + y_2y_i(x_2^Tx_i) + y_3y_i(x_3^Tx_i))
$$
将$\alpha_1$和$\alpha_2$限制在$[0,C]$之间,可以得到以下的解:
$$
\alpha_1 = 0,\alpha_2 = 1,\alpha_3 = 1
$$
因此,分离超平面的表达式为:
$$
w^Tx + b = 0
$$
其中,
$$
w = \sum_{i=1}^{m}\alpha_iy_ix_i = (-1,1)^T
$$
$$
b = y_2 - w^Tx_2 = -1
$$
支持向量为$x_2$和$x_3$。
阅读全文