支持向量机 - 简单解释?

14

所以,我正在尝试理解支持向量机算法的工作原理,但我就是无法弄清楚如何将一些数据集转换为在n维平面上具有数学意义的点,从而通过一个超平面将这些点分离和分类。

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

也许有人可以用2D的例子来解释,因为我看到的任何图形表示都是2D的,而不是nD。svm

1个回答

16
简短的回答是:它们不转换矩阵,而是将矩阵中的每个元素视为一个维度(在机器学习中,每个元素都被称为一个“特征”)。因此,它们需要使用100x100 = 10000个特征来分类元素。在线性SVM的情况下,它们使用超平面来实现这一点,将10000维空间分成两个不同的区域。
更详细的回答是: 考虑您的二维情况。现在,您想要分离一组二维元素。这意味着您集合中的每个元素可以在数学上描述为2元组,即:e = (x1, x2)。例如,在您的图中,一些实心点可能是:{(1,3), (2,4)},一些空心点可能是{(4,2), (5,1)}。请注意,为了使用线性分类器对它们进行分类,您需要一个二维线性分类器,它将产生一个决策规则,该规则可能如下所示:
  • e = (x1, x2)
  • 如果(w1 * x1 + w2 * x2) > C:决定e是一个实心点。
  • 否则:e为空心点。
请注意,分类器是线性的,因为它是e元素的线性组合。'w'被称为“权重”,而'C'是决策阈值。如上所述的2元线性函数只是一条直线,这就是为什么在你的图中'H'是线条的原因。
现在,回到我们的n维情况,你可能可以想象出一条直线行不通。在三维情况下,我们需要一个平面:(w1 * x1 + w2 * x2 + w2 * x3) > C,在n维情况下,我们需要一个超平面:(w1 * x1 + w2 * x2 + ... + wn * xn) > C,这非常难以想象,更不用说画出来了:-)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接