其他分享
首页 > 其他分享> > 特征工程之特征归一化

特征工程之特征归一化

作者:互联网

参考资料

  1. 《百面机器学习》
  2. 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​−Xmin​X−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