特征缩放
为了消除数据特征之间的量纲影响,我们需要对特征进行归一化处理
,使得不同指标之间具有可比性。例如,分析一个人的身高和体重对健康的影响,如果使用 米(m) 和 千克(kg) 作为单位,那么分析出来的结果显然会倾向于数值差别比较大的体重特征,想要得到更为准确的结果,就需要进行 特征归一化
处理,使得各指标处于同一数值量级,以便进行分析。
同时,特征归一化
可提高模型精度和模型收敛速度,是预处理的重要环节之一,特征归一化又叫特征缩放
。
一、标准化(零均值归一化)
1.1 定义
它将原始数据类型映射到均值为0,标准差为1的分布上。对特征向量进行缩放是无意义的,比如对班级、年龄、性别一组特征向量(行)进行标准化操作是无价值的。标准化要求数值满足高斯分布,数据越接近于高斯分布,标准化效果越佳。具体来说,假设原始特征的均值为
μ
\mu
μ,标准差为
σ
\sigma
σ ,那么 标准化(归一化) 公式定义为
z
=
x
−
μ
σ
z = \frac{x - \mu}{\sigma}
z=σx−μ
1.2 特点
标准化后使得不同度量的数据特征具有可比性,同时不改变数据的原始分布状态。
- 标准化对数据进行规范化处理,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。
但是,数据标准化并不是万能的。在实际应用中,通过梯度下降法求解的模型通常是需要归一化的,包括线性回归,逻辑回归,支持向量机,神经网络等模型。但对于 决策树 等模型则并不适用,以 C4.5
为例,决策树在进行结点分裂时主要依据数据集
D
D
D 关于特征
x
x
x 的信息增益比,而信息增益比跟特征是否经过归一化是无关的,因为归一化并不会改变样本在特征
x
x
x 上的信息增益。
二、最小值-最大值归一化(线性函数归一化)
2.1 定义
它对原始数据进行线性变换,以便结果映射到
[
0
,
1
]
[0, \quad 1]
[0,1] 或
[
−
1
,
1
]
[-1, \quad 1]
[−1,1] 的范围,实现对原始数据的等比缩放,公式如下:
X
n
o
r
m
=
X
−
X
m
i
n
X
m
a
x
−
X
m
i
n
X_{norm} = \frac{X - X_{min}}{X_{max} - X_{min}}
Xnorm=Xmax−XminX−Xmin
其中
X
X
X 为原始数据,
X
m
a
x
X_{max}
Xmax、
X
m
i
n
X_{min}
Xmin 分别为数据最大值和最小值。
2.2 特点
- 受训练集中最大值和最小值影响大,存在数据集中最大值和最小值动态变化的可能
- 容易受到噪声(异常点、离群点)影响
2.3 区别
最大值-最小值归一化 | 标准化 | |
---|---|---|
不同点 | 将样本的特征值转换到同一量纲下,把数据映射到[0, 1]空间中 | 对特征列进行数据处理,每个样本点都能对标准化产生影响 |
改变了原始数据分布 | 不改变原始数据分布 | |
相同点 | 都是线性变换,通过对向量按比例的压缩,然后再平移 | |
都能减少由于量纲不同引起的误差 |
三、应用场景
3.1 最小值-最大值归一化应用场景
- 不涉及协方差计算
- 不涉及距离度量
- 数据不符合正态分布
- 数据较为稳定,不存在极端的最大值和最小值
3.2 标准化应用场景
在分类、聚类算法中:
- 需要使用距离来度量相似性
- 需要使用 PCA 等技术进行降维
- 需要用到 SVM 、LR 等
- 数据存在异常值或较多噪声值
3.3 注意事项
- 不要在整个数据集上做归一化处理,要区分训练集和测试集
- 在实际应用中,特征缩放的标准化操作更有用
四、其他方法
4.1 均值归一化
x ′ = x − a v e r a g e ( x ) m a x ( x ) − m i n ( X ) x' = \frac{x - average(x)}{max(x) - min(X)} x′=max(x)−min(X)x−average(x)
4.2 缩放成单位向量
x ′ = x ∣ ∣ x ∣ ∣ x' = \frac{x}{||x||} x′=∣∣x∣∣x