数据与特征

归一化与标准化(normalization and standardization)

/ nor-muh-lih-ZAY-shun and stan-der-dih-ZAY-shun /

假设你数据里的一列是年龄(0到100),另一列是年收入(0到几十万)。在一个基于数学的模型看来,收入显得大了上千倍、把年龄的声音盖了过去,这仅仅是因为它的单位,而非因为它更重要。归一化与标准化,正是把所有特征放到可比尺度上、让任何一个都不至于淹没其他的两种办法。

归一化(normalization)通常指最小—最大缩放:把每个特征压进一个固定区间,常见是0到1,做法是把最小值映射为0、最大值映射为1。标准化(standardization)则是重新缩放,使每个特征均值为0、标准差为1——也就是所谓的z分数(z-score),它表示某个值高于或低于平均值多少个标准差。归一化保留原有的形状但限定了范围;标准化把数据居中,当关键在于「离散程度」而非「上下界」时更稳健。

为何重要:许多方法对尺度很敏感——梯度下降收敛得更快,k近邻、k均值这类基于距离的方法才会表现得合理,而正则化也只有在尺度可比时才会公平地对待各特征。关键纪律是:只用训练数据来计算最小值、最大值、均值和标准差,再把这同一组数字套用到验证集和测试集上。在测试集上重新求这些量,会泄露信息、虚高你的分数。

年龄在20到60之间,收入在3万到15万之间。最小—最大归一化把一位40岁、年入9万的人映射为(0.5, 0.5)。标准化则改为报告每个值有多「不寻常」:恰好处在平均水平的年龄和收入都会变成0,无论它们原本的单位是什么。

最小—最大缩放把数据压到0到1;z分数则把数据重新居中到均值0、离散度1。

这两个词用得很随意,有人甚至会互换着用。真正不容含糊的是:缩放器只能在训练数据上拟合——一个离群点,或对测试集范围的一次偷看,都会悄悄扭曲下游所有人赖以为据的那些数字。

又称
min-max scalingz-score normalization归一化标准化標準化歸一化