给定二维空间中的一组点,如何为SVM设计决策功能?


10

有人可以解释一下如何设计SVM决策功能吗?或指向我讨论具体示例的资源。

编辑

对于下面的示例,我可以看到等式分离了具有最大边距的类。但是,如何以以下形式调整权重并编写超平面方程式。X2=1.5

H1:w0+w1x1+w2x21forYi=+1H2:w0+w1x1+w2x21forYi=1.

在此处输入图片说明

在考虑更高的维度之前,我试图在二维空间中正确理解基础理论(因为它更易于可视化)。

我已经为此解决方案,可以请有人确认这是否正确吗?

权重向量是(0,-2)并且W_0是3

H1:3+0x12x21forYi=+1H2:3+0x12x21forYi=1.

有有R的说明在这里,但我觉得你的问题更多的是对算法的方面。在这种情况下,如果您可以添加有关预期应用程序或可用资源的更多详细信息,将会有所帮助。
chl 2012年

@chl我已经更新了问题的详细信息
naresh 2012年

Answers:


12

激励SVM至少有两种方法,但是我将在这里采用更简单的方法。

现在,暂时忘记有关SVM的所有知识,而只关注当前的问题。给您一组点以及来自一些标签()。现在,我们试图找到2D线,使所有带有标签点都落在该线的一侧,而所有带有标签点都落在另一侧。D={(x1i,x2i,yi)}yi{1,1}11

首先,认识到是2D线,并且表示该线的“一侧”,而表示该线的“另一侧”。线。w0+w1x1+w2x2=0w0+w1x1+w2x2>0w0+w1x1+w2x2<0

从上面可以得出结论,我们想要一些矢量使得 所有点与和对于 [1]的所有点,。瓦特0 + 瓦特1 X 1 + 瓦特2 X 20 X Ŷ = 1 瓦特0 + 瓦特1 X 1 + 瓦特2 X 2 < 0 X y i = 1[w0,w1,w2]w0+w1x1i+w2x2i0xiyi=1w0+w1x1i+w2x2i<0xiyi=1

让我们假设这样的行确实存在,那么我可以通过以下方式定义分类器:

min|w0|+|w1|+|w2|subject to:w0+w1x1i+w2x2i0,xi with yi=1w0+w1x1i+w2x2i<0,xi with yi=1

我在上面使用了一个任意的目标函数,我们暂时不在乎使用哪个目标函数。我们只想要一个满足我们的约束。由于我们假设存在一条线,这样我们就可以用该线将两个类分开,因此我们将找到上述优化问题的解决方案。w

上面不是SVM,但是它将为您提供分类器:-)。但是,此分类器可能不是很好。但是,您如何定义一个好的分类器?好的分类器通常是在测试集上表现良好的分类器。理想情况下,您将遍历所有可能将训练数据分开的,并查看其中哪个在测试数据上表现良好。但是,有无限个,所以这是完全没有希望的。相反,我们将考虑一些启发式方法来定义一个好的分类器。一种试探法是,将数据分开的线与所有点都应足够远(即,在点和线之间始终存在间隙或边距)。其中最好的分类器是利润最大的分类器。这就是在SVM中使用的东西。ww

代替的坚持所有点与和对于所有点与,如果我们坚持所有点与和所有点与,那么我们实际上是在坚持点离线很远。与此要求相对应的几何余量为。w0+w1x1i+w2x2i0xiyi=1w0+w1x1i+w2x2i<0xiyi=1w0+w1x1i+w2x2i1xiyi=1w0+w1x1i+w2x2i1xiyi=11w2

因此,我们得到以下优化问题, 稍微简洁写本的形式是, 这基本上是SVM的基本公式。为了简洁起见,我跳过了很多讨论。希望我仍然能理解大部分想法。

max1w2subject to:w0+w1x1i+w2x2i1,xi with yi=1w0+w1x1i+w2x2i1,xi with yi=1
minw2subject to:yi(w0+w1x1i+w2x2i)1,i

CVX脚本解决示例问题:

A = [1 2 1; 3 2 1; 2 3 1; 3 3 1; 1 1 1; 2 0 1; 2 1 1; 3 1 1];
b = ones(8, 1);
y = [-1; -1; -1; -1; 1; 1; 1; 1];
Y = repmat(y, 1, 3);
cvx_begin
variable w(3)
minimize norm(w)
subject to
(Y.*A)*w >= b
cvx_end

附录-几何边距

上面我们已经请求我们寻找使得或通常是。您在此处看到的LHS称为功能裕度,因此我们在此处要求的功能裕度为。现在,我们将根据给定的功能裕度要求尝试计算几何裕度。wyi(w0+w1x1+w2x2)1yi(w0+wTx)11

什么是几何余量?几何裕量是正例中点与负例中点之间的最短距离。现在,上面要求的距离最短的点的功能边距可以大于1。但是,让我们考虑极端情况,即当它们最靠近超平面时,最短点的功能边距完全相等。到1。令是正例上的点是的点,是负例上的点是。现在,当时,和之间的距离将是最短的x+wTx++w0=1xwTx+w0=1x+xx+x 垂直于超平面。

现在,利用以上所有信息,我们将尝试找到,这是几何余量。 x+x2

wTx++w0=1
wTx+w0=1
wT(x+x)=2
|wT(x+x)|=2
w2x+x2=2
x+x2=2w2

[1]选择和哪一方实际上并不重要。您只需要与选择的内容保持一致即可。11


1
@naresh Yeap,解决这个问题在cvx中给了我与 -2,3]完全相同的解决方案。w=[0,2,3]
TenaliRaman 2012年

1
@entropy谢谢,我纠正了错字。我将添加几何边距说明。
TenaliRaman

1
@entropy我用几何边距解释更新了答案。
TenaliRaman

1
熵是穿过原点的超平面。为了覆盖所有线性方程的空间,您需要偏置项。考虑一下驻留在2D中的点,我们可以说您正在尝试找到一条将这些点分隔开的线。但是这些点都位于第一象限中。现在,可以将这些点布置为可分离的,但不能通过任何穿过原点的线。但是,具有适当偏差的线可以做到这一点。wTx
TenaliRaman 2013年

1
@entropy综上所述,您可能已经意识到,如果您正确旋转和移动点,即使是一条穿过原点的线也应该能够分隔这些类。但是,与仅学习偏差项相比,通常很难找到这种正确的旋转和移位。
TenaliRaman 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.