数据与特征
特征缩放(feature scaling)
/ FEE-cher SKAY-ling /
特征缩放,就是给每个数值特征「调整尺寸」,让它们用可比的单位说话。想象一下,在给运动员排名前,先把每个人的身高和体重换算到同一尺度上,免得「磅」仅仅因为数字本来就更大,就自动压倒了「英寸」。归一化和标准化,是两种最常见的缩放配方。
具体说来,像收入(数万量级)这样的特征,和像子女数(零到几个)这样的特征,处在截然不同的尺度上。若不缩放,任何「度量距离」或「把加权特征相加」的方法,都会仅仅因为量级问题而被那个数字大的特征主导。缩放会把每个特征重新缩放——比如压到0到1的范围,或调成均值为0、标准差为1——好让每个特征都有公平的发言权。缩放规则总是从训练集中学得,再原封不动地套用到新数据上。
为何重要:基于距离的方法(k近邻、k均值)、用梯度下降训练的模型(多数神经网络、逻辑回归与线性回归),以及带正则化的模型,在特征经过缩放后都会表现更好、训练更快。有些方法则不需要它——随机森林、梯度提升这类基于树的模型,一次只在一个特征上切分,对尺度免疫——所以缩放是一件「方法需要时才用」的工具,而不是一种盲目执行的仪式。
若用收入(以元计)和年龄(以岁计)来找一位顾客的最近邻,收入那庞大的数字会完全淹没年龄——每个人的「最近邻」都只是工资相近的那位罢了。把两者都缩放到0到1,年龄才终于算数,于是相似度同时反映了这两项特质。
缩放前,元淹没了岁;缩放后,两项特质都算数。
缩放并非总有必要:基于树的模型(决策树、随机森林、梯度提升)对尺度不敏感。搞清楚哪些方法在乎缩放,能让你避免照本宣科式的盲目预处理。
又称
另见