2017-01-31 33 views
-1

假设我有几个值如下:SVM中预测的标准化轴是否有所不同?

x1  x2   x3   y 
1  40   0.9   1 
0.9  80   0.5   1 
0.6  50   0.6   0 
0.4  30   0.7   0 

使得值样子:

x1  x2   x3   y 
1  0.5  0.9   1 
0.9  1   0.5   1 
0.6  0.7  0.6   0 
0.4  0.8  0.7   0 

列y为输出。将有所作为,如果我沿着列X2正常化(轴= 0),而不是沿着行(轴= 1)

将预测变化?

谁能解释一下它背后的数学?

+2

什么第二值表示? (在“使值看起来像:”)x1,x2,x3等表示特征。功能可以在不同的尺寸(单位米,厘米,秒等)和规模。所以如果你沿着行对它进行标准化,它没有任何意义。他们应该正常列明智有道理。 –

+0

@Jibin是Vivek Kumar说得对,跨行标准化没有任何意义。跨列(或特征)的规范化已完成,以便所有特征在相同的范围内。这样做是为了在SVM中存在的距离计算是适当的,并且适当地完成特征的权重估计。跨行标准化会产生不明确的结果。 – prashanth

回答

1

预测会有所不同。此外,建议对数据进行缩放以获得更好的预测结果。 SVM使用特征向量之间的距离函数(如欧几里得距离)。如果某个功能具有不同的值范围,则可能会产生不必要的高效。

考虑下面的例子:我们有3个实例:A =(0,80,0),B =(1,40,0.9)和C =(0.1,50%,0)。如果我们期望所有的特征将被平等对待,那么我们希望A和C之间的距离将小于B和C.然而,距离函数将导致B和C之间的较小距离。

取自documentation

支持向量机算法不是规模不变的,所以强烈推荐使用 来扩展您的数据。例如,缩放所述输入矢量X的每个 属性为[0,1]或[-1,+ 1],或标准化它 具有均值为0,方差为1。注意,相同的缩放必须施加到 测试矢量来获得有意义的结果。请参阅部分 预处理数据以获取有关缩放和规范化的更多详细信息。