目标
在这一章中
- 我们将对SVM有一个直观的了解
理论
线性可分数据
考虑下面的图像,它具有两种数据类型,红色和蓝色。在kNN中,对于测试数据,我们用来测量其与所有训练样本的距离,并以最小的距离作为样本。测量所有距离都需要花费大量时间,并且需要大量内存来存储所有训练样本。但是考虑到图像中给出的数据,我们是否需要那么多?
考虑另一个想法。我们找到一条线 f ( x ) = a x 1 + b x 2 + c f(x)=ax_1 + bx_2+c f(x)=ax1+bx2+c,它将两条数据都分为两个区域。当我们得到一个新的test_data X X X时,只需将其替换为 f ( x ) f(x) f(x)即可。如果 f ( X ) > 0 f(X)> 0 f(X)>0,则属于蓝色组,否则属于红色组。我们可以将此行称为“决策边界”。它非常简单且内存高效。可以将这些数据用直线(或高维超平面)一分为二的数据称为线性可分离数据。
因此,在上图中,你可以看到很多这样的行都是可能的。我们会选哪一个?非常直观地,我们可以说直线应该从所有点尽可能远地经过。为什么?因为传入的数据中可能会有噪音。此数据不应影响分类准确性。因此,走最远的分离线将提供更大的抗干扰能力。因此,SVM要做的是找到到训练样本的最小距离最大的直线(或超平面)。请参阅下面图像中穿过中心的粗线。
因此,要找到此决策边界,你需要训练数据。那么需要全部吗?并不用。仅接近相反组的那些就足够了。在我们的图像中,它们是一个蓝色填充的圆圈和两个红色填充的正方形。我们可以称其为支撑向量,通过它们的线称为支撑平面。它们足以找到我们的决策边界。我们不必担心所有数据。它有助于减少数据量。
接下来,找到了最能代表数据的前两个超平面。例如,蓝色数据由 w T x + b 0 > − 1 w^Tx+b_0>-1 wTx+b0>−1表示,红色数据由 w T x + b 0 < − 1 wTx+b_0<-1 wTx+b0<−1表示,其中 w w w是权重向量( w = [ w 1 , w 2 , . . . , w n ] w=[w_1,w_2,...,w_n] w=[w1,w2,...,wn]), x x x是特征向量( x = [ x 1 , x 2 , . . . , x n ] x =[x_1,x_2,...,x_n] x=[x1,x2,...,xn])。 b 0 b_0 b0是偏置。权重矢量确定决策边界的方向,而偏置点确定其位置。现在,将决策边界定义为这些超平面之间的中间,因此表示为 w T x + b 0 = 0 w^Tx + b_0 = 0 wTx+b0=<