如果输人的数值属性具有非常大的比例差异,往往导致机器学习算法的性能表现不佳,当然也有极少数特例。案例中的房屋数据就是这样:房间总数的范围从6到39 320,而收入中位数的范围是0到15。注意,目标值通常不需要缩放。

同比例缩放所有属性,常用的两种方法是:最小-最大缩放和标准化。

最小-最大缩放,又叫作归一化,很简单:将值重新缩放使其最终范围归于0到1之间。实现方法是将值减去最小值并除以最大值和最小值的差。

标准化则完全不一样:首先减去平均值(所以标准化值的均值总是零),然后除以方差,从而使得结果的分布具备单位方差。

不同于最小-最大缩放的是,标准化不将值绑定到特定范围,对某些算法而言,这可能是个问题(例如,神经网络期望的输人值范围通常是0到1)。但是标准化的方法受异常值的影响更小。例如,假设某个地区的平均收人等于100 (错误数据)。最小-最大缩放会将所有其他值从0~15降到0~0.15,而标准化则不会受到很大影响。