14

因此,我试图了解 SVM 算法的工作原理,但我只是无法弄清楚如何在具有数学意义的 n 维平面的点中转换一些数据集,以便通过超平面分离这些点并对其进行分类。

这里有一个例子,他们试图对老虎和大象的图片进行分类,他们说“我们将它们数字化为 100x100 像素的图像,所以我们在 n 维平面上有 x,其中 n=10,000”,但我的问题是它们是如何转换实际上仅代表一些具有数学意义的颜色代码 IN 点的矩阵,以便将它们分类为 2 个类别?

可能有人可以在 2D 示例中向我解释这一点,因为我看到的任何图形表示都只是 2D,而不是 nD。支持向量机

4

1 回答 1

16

简短的回答是:它们不转换矩阵,而是将矩阵中的每个元素视为一个维度(在机器学习中,每个元素都称为Feature)。因此,他们需要对每个具有 100x100 = 10000 个特征的元素进行分类。在线SVM 的情况下,他们使用超平面来实现,它将 10,000 维空间分成两个不同的区域。

更长的答案是:考虑您的 2D 案例。现在,您要分离一组二维元素。这意味着您的集合中的每个元素都可以在数学上描述为一个 2 元组,即:e = (x1, x2)。例如,在您的图中,一些完整的点可能是:{(1,3), (2,4)},而一些空心的可能是{(4,2), (5,1)}。请注意,为了使用线性分类器对它们进行分类,您需要一个二维线性分类器,它会产生一个可能如下所示的决策规则:

  • e = (x1, x2)
  • if (w1 * x1 + w2 * x2) > C :确定 e 是一个完整的点。
  • 否则: e 是空心的。

请注意,分类器是线性的,因为它是 e 元素的线性组合。“w”被称为“权重”,“C”是决策阈值。如上所述的具有 2 个元素的线性函数只是一条线,这就是为什么在您的图中 H 是线的原因。

现在,回到我们的 n 维案例,您可能会认为一条线无法解决问题。在 3D 情况下,我们需要一个平面:(w1 * x1 + w2 * x2 + w2 * x3) > C,在 n 维情况下,我们需要一个超平面:(w1 * x1 + w2 * x2 + ... + wn * xn) > C,这该死的很难想象,但还是要画 :-)。

于 2011-06-02T06:32:13.310 回答