我想解决以下优化问题 -
成本函数: 1/2 || W || ^ 2
受制于: Y_i(w.X_i - b)> = 1
其中X
是700x3矩阵,Y
是一个向量,用于存储这些实例的类标签(值为1 / -1),w.X_i
是w
的点积。 {1}}和X_i
。
我正在使用CVX -
cvx_begin
variable W(3);
variable B;
minimize (0.5*W'*W)
subject to
Y'*(X*W - B) >= 1;
cvx_end
然后,我正在密谋,w1.x1 + w2.x2 - b
哪个似乎没有分离超平面?
我做错了什么?
答案 0 :(得分:0)
简而言之:
当您执行w1.x1 + w2.x2 - b
时,您试图在特定位置指定超平面,这也与指定向量上的特定点相同。要在3D空间中进行操作,您需要使用所有三个维度,因此:w1.x1 + w2.x2 +w3.x3 - b
更长时间 执行此类线性分类时,可以通过两种方式查看任务:
找到一个分离超平面,使得一个类的所有样本都在一侧,而另一个类的所有样本都在另一侧。
找到样本所在的多维空间的投影,形成一条单独的线条,使得线条上有一个明确区分它们的点。
这些是相同的任务,因为2中的单个维度实质上是每个样本离分离超平面的距离(以及所述样本在哪一侧)。我发现考虑到这两个观点是有帮助的,特别是因为分离超平面是与单维向量正交的平面。
因此,在您处理的情况下,模型提供的权重向量w
用于将矩阵X
中的样本投影到单维线上并且偏移{{1} }表示沿该向量的哪个点发生分离超平面。通过从投影值中减去b
,它们被移位,使得这个超平面是与点0处的线正交的超平面,这使得简单的阈值处理。