【机器学习与深度学习理论要点】03.特征归一化的概念、特点、方法及应用模型
1)什么是特征归一化对数值类型的特征做归一化,可以将所有的特征都统一到一个大致相同的数值区间内。2)为什么要特征归一化为了消除数据特征之间的量纲影响,使得不同指标之间有可比性。归一化后加快了梯度下降求最优解的速度。归一化有可能提高精度。3)特征归一化常用方法线性函数归一化:它对原始数据进行线性变换,使结果映射到[0,1]的范围,实现对原始数据的等比缩放。零均值归一化:它会讲原始数据映射到均值为0,
·
1)什么是特征归一化
对数值类型的特征做归一化,可以将所有的特征都统一到一个大致相同的数值区间内。
2)为什么要特征归一化
- 为了消除数据特征之间的量纲影响,使得不同指标之间有可比性。
- 归一化后加快了梯度下降求最优解的速度。
- 归一化有可能提高精度。
3)特征归一化常用方法
- 线性函数归一化:它对原始数据进行线性变换,使结果映射到[0,1]的范围,实现对原始数据的等比缩放。

其中 X为原始数据,XmaxX_{max}Xmax 、XminX_{min}Xmin分别为数据最大值和最小值。 - 零均值归一化:它会讲原始数据映射到均值为0,标准差为1的分布上。具体来说, 假设原始特征的均值为 μ、标准差为 σ,那么归一化公式定义为

4)为什么需要对数值型特征做归一化
- 我们不妨借助随机梯度下降的实例来说明归一化的重要性。假设有两种数值型特征,X1X_1X1的取值范围为[0,1] ,X2X_2X2的取值范围为[0, 3],于是可以构造一个目标函数符合图 ( a )中的等值图。
- 在学习速率相同的情况下,X1X_1X1 的更新速度会大于X2X_2X2 , 需要较多的迭代才能找到最优解。如果将 X1X_1X1 和X2X_2X2 归一化到相同的数值区间后,优化目标的等值图会变成图(b )中的圆形, X1X_1X1 和X2X_2X2 的更新速度变得更为一致,容易更快地通过梯度下降找到最优解 。

5)归一化处理实用模型
- 应用归一化的模型。在实际应用中,通过梯度下降求解的模型通常是需要归一化的,包括线性回归,逻辑回归,支持向量机、神经网络等模型。
- 不使用归一化的模型,如决策树。
6)归一化实现
def standardize(X):
"""特征标准化处理
Args:
X: 样本集
Returns:
标准后的样本集
"""
m, n = X.shape
# 归一化每一个特征
for j in range(n):
features = X[:,j]
meanVal = features.mean(axis=0)
std = features.std(axis=0)
if std != 0:
X[:, j] = (features-meanVal)/std
else
X[:, j] = 0
return X
def normalize(X):
"""Min-Max normalization sklearn.preprocess 的MaxMinScalar
Args:
X: 样本集
Returns:
归一化后的样本集
"""
m, n = X.shape
# 归一化每一个特征
for j in range(n):
features = X[:,j]
minVal = features.min(axis=0)
maxVal = features.max(axis=0)
diff = maxVal - minVal
if diff != 0:
X[:,j] = (features-minVal)/diff
else:
X[:,j] = 0
return X
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)