特征缩放
机器学习项目中,我们需要应用于数据的最重要的转换之一是特征缩放。除了少数例外,当输入数字属性具有非常不同的比例时,机器学习算法表现不佳。住房数据就是这种情况:房间总数在6到39,320之间,而收入中位数的范围只有0到15.请注意,通常不需要缩放target values。有两种常用方法可以使所有属性具有相同的比例:min-max缩放和标准化
-
最小-最大缩放-Min-max scaling(许多人称之为normalization):移动和重新调整值,使它们范围变成[0,1]。我们通过(X-Xmin)/(Xmax-Xmin)来实现。为此,Scikit-Learn提供了一个名为MinMaxScaler的transformer。它有一个feature_range超参数,如果由于某种原因你不想要[0,1],它可以让你改变范围。
-
标准化-Standardization是完全不同的:它首先减去平均值(如此标准化值总是具有零均值),然后它除以方差,以便得到的分布具有单位方差。与最小-最大缩放不同,标准化不将值缩放到特定范围,这对于某些算法可能是一个问题(例如,神经网络通常期望输入值范围是从0到1)。但是,标准化受异常值的影响要小得多。例如,假设一个地区的收入中位数等于100(错误地)。然后,最小-最大缩放将所有其他值从0-15压缩到0-0.15,而标准化不会受到太大影响。 Scikit-Learn提供了一个名为StandardScaler的transformer用于标准化。
受特征缩放影响的算法
- 受特征缩放影响的算法有支持向量机和K均值算法。
他们之所以受特征缩放的影响是因为他们都是根据距离数据的距离进行划分的。支持向量机划分是根据到数据点间的最大距离,K均值的选取和优化也和距离有十分密切的关系。因此,当一点的距离成倍增加时必然会对分类造成影响。
- 不受特征缩放影响的算法有决策树和线性回归。
决策树之所以不受特征缩放影响是因为决策树总是横向的分割,即使某一个变量成比例的扩大倍数也没有关系。线性回归之所以不受影响的是因为线性方程的比例关系总是不变的,所以缩放对其没有影响。












网友评论