4.1 特征的缩放
问题描述
将一个数值型特征的值缩放(rescale)到两个特定的值之间。
解决方案
用scikit-learn的MinMaxScaler来缩放一个特征数组:


讨论
在机器学习中,缩放是一个很常见的预处理任务。本书后面所讲的很多算法都假设所有的特征是在同一取值范围中的,最常见的范围是[0, 1]或[-1, 1]。用于缩放的方法有很多,其中最简单的一种被称为min-max缩放。min-max缩放利用特征的最小值和最大值,将所有特征都缩放到同一个范围中。其计算公式如下:

x是特征向量,xi是x中的一个元素值,xi'是缩放后的元素值。从本例输出的数组中可以看出,特征的元素值已经被成功地缩放到0和1之间了:

scikit-learn的MinMaxScaler支持两种方式来缩放特征。第一种方式是使用fit计算特征的最小值和最大值,然后使用transform来缩放。第二种方式是使用fit_transform一次性执行上面所说的两个操作。从数学上来说,这两种方式没有区别。但是,有时候将两个操作分开会带来一些好处,因为这样的话我们就能对不同的数据集执行同样的转换。
延伸阅读
● 特征缩放(Wikipedia,http://bit.ly/2Fuug2Z)
●《关于特征缩放和归一化》(Sebastian Raschka,http://bit.ly/2FwwRcM)



本书评论