【问题标题】:Why do standardscaler and normalizer need different data input?为什么standardscaler和normalizer需要不同的数据输入?
【发布时间】:2019-06-04 13:10:20
【问题描述】:

我正在尝试以下代码,发现sklearn 中的StandardScaler(or MinMaxScaler)Normalizer 处理数据的方式非常不同。这个问题使管道建设更加困难。我想知道这种设计差异是否是故意的。

from sklearn.preprocessing import StandardScaler, Normalizer, MinMaxScaler

对于Normalizer,数据被“水平”读取。

Normalizer(norm = 'max').fit_transform([[ 1., 1.,  2., 10],
                                        [ 2.,  0.,  0., 100],
                                        [ 0.,  -1., -1., 1000]])
#array([[ 0.1  ,  0.1  ,  0.2  ,  1.   ],
#       [ 0.02 ,  0.   ,  0.   ,  1.   ],
#       [ 0.   , -0.001, -0.001,  1.   ]])

对于StandardScalerMinMaxScaler,数据是“垂直”读取的。

StandardScaler().fit_transform([[ 1., 1.,  2., 10],
                                [ 2.,  0.,  0., 100],
                                [ 0.,  -1., -1., 1000]])
#array([[ 0.        ,  1.22474487,  1.33630621, -0.80538727],
#       [ 1.22474487,  0.        , -0.26726124, -0.60404045],
#       [-1.22474487, -1.22474487, -1.06904497,  1.40942772]])

MinMaxScaler().fit_transform([[ 1., 1.,  2., 10],
                              [ 2.,  0.,  0., 100],
                              [ 0.,  -1., -1., 1000]])
#array([[0.5       , 1.        , 1.        , 0.        ],
#       [1.        , 0.5       , 0.33333333, 0.09090909],
#       [0.        , 0.        , 0.        , 1.        ]])

【问题讨论】:

    标签: python-3.x scikit-learn normalization scaling


    【解决方案1】:

    这是预期的行为,因为 StandardScalerNormalizer 用于不同的目的。 StandardScaler“垂直”工作,因为它...

    通过去除均值并缩放到单位方差来标准化[s]特征

    [...] 通过计算训练集中样本的相关统计数据,居中和缩放在每个特征上独立发生。然后存储平均值和标准差,以便使用变换方法处理以后的数据。

    Normalizer '水平'工作,因为它...

    将[s] 个样本单独标准化为单位标准。

    具有至少一个非零分量的每个样本(即数据矩阵的每一行)独立于其他样本重新缩放,使其范数(l1 或 l2)等于 1。

    请查看 scikit-learn 文档(上面的链接),以获得更多洞察力,从而更好地满足您的目的。

    【讨论】:

    • 非常感谢!我想我很困惑,因为“规范化”这个词在很多情况下都被非常随意地使用了。有些文章称 MinMaxScaler 归一化。你的回答真的很有帮助!
    • 很高兴能帮上忙 :) 请考虑投票并接受我的回答以表扬我。
    猜你喜欢
    • 2016-12-31
    • 2021-10-09
    • 1970-01-01
    • 2017-11-22
    • 2021-05-01
    • 2021-02-03
    • 2019-04-13
    • 2011-09-16
    相关资源
    最近更新 更多