目 录
一、Q&A
Q1 什么是标准化、归一化、规范化、正则化?
A: 在特征缩放中,标准化和归一化是特征缩放的两种形式,一个是减去均值后再除以方差,一个是把数据压缩到 [ 0 , 1 ] [0, 1] [0,1] 或者 [ − 1 , 1 ] [-1, 1] [−1,1] 区间上。规范化是线性代数中的名词,在数据科学中也有人把特征缩放称为特征规范化或者特征归一化,不过为了避免混淆不建议这样做。而正则化是一种防止过拟合的手段,用来对模型的复杂度或者特征维度进行惩罚,严格来说不属于数据预处理的内容。
Q2 为什么需要做标准化或者归一化?
A: 当模型是输入特征的平滑函数时,那么它对输入的尺度是非常敏感的,取值范围大的特征被无意中赋予了更大的权重,它会压缩取值范围小的特征对结果的影响。例如 y = x 1 + x 2 + 7 y = x_1 + x_2 +7 y=x1+x2+7 是一个简单的线性函数,如果 x 1 x_1 x1 的尺度为 [ 0 , 1 ] [0,1] [0,1] , x 2 x_2 x2 的尺度为 [ 0 , 10000 ] [0, 10000] [0,10000] ,那么 x 2 x_2 x2 的变动将会产生更大的影响。这个时候就要对特征进行缩放,也就是标准化或者规范化。目的是使其不同尺度之间的特征具有可比性,同时不改变原始数据的分布。
Q3 什么样的模型需要输入标准化或者归一化的特征,什么样的模型不需要?
A: 正如前一问提到的,需要对特征进行标准化的模型是输入的平滑函数,比如线性回归模型、逻辑回归模型或者包含矩阵的模型。此外,k-均值聚类、k近邻法、径向基和函数,以及所有使用欧式距离的方法都属于这种情况。相对地,基于空间分割树的模型(决策树、梯度提升树、随机森林)对尺度是不敏感的。除非输入的尺度是随时间变化的,也就是说如果特征是某种累计值,那么它最终可能会超出训练树的取值范围。如果出现了这种情况,就必须定期地对输入尺度进行调整,或者使用区间计数法。
Q4 哪些数据不能做特征缩放?
A: 稀疏数据不能进行特征缩放,因为特征缩放相当于对原数据进平移和缩放。而对于稀疏数据来说,数据中含有大量的0,一旦进行平移,那么稀疏特征将会变为密集特征,这会产生很大的影响,比如特征向量中包含没有在文章中出现的所有单词,那么当它变为密集向量的时候,特征的意义会发生巨大的改变。
二、特征标准化/方差放缩
特征标准化可用下面的公式来定义: