支持向量机 - 一个简单的解释?

时间:2011-05-28 08:16:03

标签: algorithm linear-regression svm

所以,我试图理解SVM算法是如何工作的,但我无法弄清楚你如何在n维平面的点上转换一些具有数学意义的数据集,以便通过超平面分离点和把它们分开。

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

可能有人可以在2D示例中向我解释这一点,因为任何图形表示我都认为它只是2D,而不是nD。svm

1 个答案:

答案 0 :(得分:16)

简短的回答是:它们不会转换矩阵,而是将矩阵中的每个元素视为一个维度(在机器学习中,每个元素将被称为 Feature )。 因此,他们需要分别使用100x100 = 10000个特征对元素进行分类。在线性 SVM案例中,他们使用hyperplane来实现,它将10,000维空间划分为两个不同的区域。

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

  • 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,这很难想象,但也可以画出来: - )。