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

flo*_*wer 14 algorithm svm linear-regression

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

这里有一个例子在这里,他们正试图clasify老虎和大象的照片,他们说:"我们的数字化他们到100×100像素的图片,所以我们在n维平面,其中n = 10,000×",但我的问题是怎么做的,他们转换实际上只代表一些颜色代码的矩阵IN具有数学意义的点,以便将它们分为两类?

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

bav*_*aza 16

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

更长的答案是:考虑你的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,这是很难想象的,尽管如此:-).