特征工程之特征归一化
作者:互联网
参考资料
- 《百面机器学习》
- https://blog.csdn.net/wei18791957243/article/details/91360356
为什么需要特征归一化
为了消除数据特征之间的量纲影响,使得不同指标之间具有可比性。在实际应用中,通过梯度下降法求解的模型通常是需要归一化的。但对于决策树模型并不适用。
线性函数归一化(Min-Max Scaling)
对原始数据进行线性变换,使结果映射到[0,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分别为数据的最大值和最小值。
代码示例
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
X = [[90, 2, 10, 40],
[60, 4, 15, 45],
[75, 3, 13, 46]]
X_norm = scaler.fit_transform(X)
print(X_norm)
# [[1. 0. 0. 0. ]
# [0. 1. 1. 0.83333333]
# [0.5 0.5 0.6 1. ]]
零均值归一化(Z-Score Normalization)
又称标准化,即将原始数据映射到均值为0、标准差为1的分布上。具体地,设原始特征的均值为 μ \mu μ、标准差为 σ \sigma σ,公式为:
z = x − μ σ z=\frac{x-\mu }{\sigma } z=σx−μ
代码示例
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X = [[90, 2, 10, 40],
[60, 4, 15, 45],
[75, 3, 13, 46]]
X_norm = scaler.fit_transform(X)
print(X_norm)
# [[ 1.22474487 -1.22474487 -1.29777137 -1.3970014 ]
# [-1.22474487 1.22474487 1.13554995 0.50800051]
# [ 0. 0. 0.16222142 0.88900089]]
标签:工程,scaler,特征,归一化,Xmin,1.22474487,原始数据,norm 来源: https://blog.csdn.net/beilizhang/article/details/113743147