为什么要缩放?

Kev*_*vin 38 scaling machine-learning svm

我发现SVM(支持向量机)问题的扩展确实提高了它的性能......我已经读过这样的解释:

"缩放的主要优点是避免在较大数值范围内的属性占主导地位较小数值范围内的属性."

不幸的是,这对我没有帮助......有人可以给我一个更好的解释吗?先感谢您!

gre*_*ess 59

特征缩放是应用于优化问题的一般技巧(不仅仅是SVM).求解SVM优化问题的下划线算法是梯度下降.安德鲁·吴在他coursera影片的最佳解释这里.

我将在这里阐述核心思想(我借用安德鲁的幻灯片).假设您只有两个参数,其中一个参数可以采用相对较大的值范围.然后,成本函数的轮廓看起来像非常高和椭圆形的椭圆形(见下面的蓝色椭圆形).您的渐变(渐变路径以红色绘制)可能需要很长时间并来回寻找最佳解决方案.
在此输入图像描述

相反,如果您缩放了您的特征,则成本函数的轮廓可能看起来像圆圈; 那么渐变可以采用更直的路径并更快地实现最佳点. 在此输入图像描述

  • 我不同意.为了避免大价值的主导作用可能是主要优势.但是,libsvm的作者还指出,特征缩放具有防止数字问题的优点.见2.2节http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf (3认同)

lej*_*lot 48

在SVM中缩放特征背后的真正原因是,该分类器不是仿射变换不变的.换句话说,如果将一个特征乘以1000而不是SVM给出的解决方案将完全不同.它与基础优化技术几乎没有任何关系(尽管它们受到这些尺度问题的影响,它们仍然应该收敛到全局最优).

考虑一个例子:你有男人和女人,按性别和身高(两个特征)编码.让我们假设一个非常简单的例子:

0人,1人

1 150

1 160

1 170

0 180

0 190

0 200

让我们做一些愚蠢的事情.训练它来预测人的性别,所以我们试图学习f(x,y)= x(忽略第二个参数).

很容易看出,对于这样的数据,最大边距分类器将在高度"175"附近水平"切割"平面,因此一旦我们得到新样本"0 178"(身高178cm的女性),我们得到她的分类是个男人.

但是,如果我们将所有内容缩小到[0,1],我们会得到类似的结果

0 0.0

0 0.2

0 0.4

1 0.6

1 0.8

1 1.0

现在最大的边际分类器几乎垂直地"切割"飞机(正如预期的那样),所以给定新的样本"0 178",它也缩放到"0 0.56"左右,我们得到它是一个女人(正确!)

所以一般来说 - 缩放确保只是因为某些功能很大,所以不会导致将它们用作主要预测器.

  • 另一个直观的例子:假设我们想要根据高度(以米为单位)和体重(以千克为单位)等属性对一组人进行分类.高度属性具有低变异性,范围从1.5米到1.85米,而重量属性可以在50千克到250千克之间变化.如果不考虑属性的比例,则距离度量可以由人的权重的差异支配.资料来源:数据挖掘导论,第5章,谭盼宁 (4认同)