支持向量机优化问题

数据挖掘 支持向量机 偏见
2022-02-18 05:20:36

假设我们有数据集:

{(3,1),(3-1),(6,1),(6,-1)} {(1,0),(0,1),(0,-1),(-1, 0)} 第一组表示正标签,第二组表示负标签。

我想手动找到支持向量,求解方程并确定分离超平面的系数 W 和偏差 w0。

我知道 SV 是 {s1=(1,0),s2=(3,1),s3=(3-1)}

在我写了一个方程组之后:

α1k(s1,s1) + α2k(s2,s1) + α3(s3,s1) = -1

α1k(s1,s2) + α2k(s2,s2) + α3(s3,s2) = -1

α1k(s1,s3) + α2k(s2,s3) + α3(s3,s3) = -1

其中 k(x,y) 是点积 xy

这个系统的分辨率是不可能的,有人能告诉我我哪里错了吗?  

1个回答

我认为这个方程组是不正确的。如果您知道 (3, -1)、(3, 1) 和 (1, 0) 是支持向量,那么您需要求解下一个系统:

3*w1 - 1*w2 - w0 = ±1
3*w1 + 1*w2 - w0 = ±1
1*w1 + 0*w2 - w0 = ±1

分隔线同一侧的支持向量在等式右侧具有相同的符号(此处的符号相同:±1)。在此示例中,(1, 0) 位于一侧,而 (3, -1) 和 (3, 1) 位于另一侧。因此,系统将如下所示:

3*w1 - 1*w2 - w0 = 1
3*w1 + 1*w2 - w0 = 1
1*w1 + 0*w2 - w0 = -1

解决方案是:w0 = 2, w1 = 1, w2 = 0。您可以绘制所有点并检查此解决方案是否正确。