机器学习(5.sklearn归一化以及标准化)

归一化

特点:通过对原始数据进行变换把数据映射到(默认为[0,1])之间

注:作用于每一列,max为一列的最大值,min为一列的最小值,那么X’’

        为最终结果,mxmi分别为指定区间值默认mx1,mi0

sklearn归一化API

sklearn归一化API:  sklearn.preprocessing.MinMaxScaler

归一化提供的数据应该是类似于二维数组的形式

1.MinMaxScaler语法

    •MinMaxScalar(feature_range=(0,1))

                    • 每个特征缩放到给定范围(默认[0,1])

     •MinMaxScalar.fit_transform(X)      

                    •X:numpy array格式的数据[n_samples,n_features]

                    •返回值:转换后的形状相同的array

2.什么时候进行归一化?归一化的作用?

    当三个特征同等重要的时候,进行归一化

    归一化使得某一个特征对最终结果不会造成更大的影响

3.归一化的步骤

       (1) 实例化MinMaxScalar

       (2) 通过fit_transform转换

简单的步骤例子:

from sklearn.preprocessing import MinMaxScaler


def mm():
    """
    归一化处理
    :return:None
    """
    mm = MinMaxScaler()

    data = mm.fit_transform([[90, 2, 10, 40],
                             [60, 4, 15, 45],
                             [75, 3, 13, 46]]
                            )
    print(data)


if __name__ == '__main__':
    mm()

结果:

[[1.         0.         0.         0.        ]
 [0.         1.         1.         0.83333333]
 [0.5        0.5        0.6        1.        ]]

 归一化的总结:

注意在特定场景下最大值最小值是变化的,

另外,最大值与最小值非常容易受异常点影响

,所以这种方法鲁棒性较差,只适合传统精确小数据场景

标准化

1、特点:通过对原始数据进行变换把数据变换到均值为0,方差为1范围内

2 .    

  注:作用于每一列,mean为平均值,?σ为标准差(考量数据的稳定性)

3.注意计算的公式,这里的x1是一列的值,    

4.结合归一化来谈标准化:

     对于归一化来说:如果出现异常点,影响了最大值和最小值,那么结果显然

会发生改变

    对于标准化来说:如果出现异常点,由于具有一定数据量,少量的异常点对

于平均值的影响并不大,从而方差改变较小。

 5. StandardScaler语法

     sklearn特征化API:  scikit-learn.preprocessing.StandardScaler

  •StandardScaler()

                 •处理之后每列来说所有数据都聚集在均值0附近标准差差为1

  •StandardScaler.fit_transform(X,y)      

               •X:numpy array格式的数据[n_samples,n_features]

               •返回值:转换后的形状相同的array

  •StandardScaler.mean_

             •原始数据中每列特征的平均值

  •StandardScaler.std_

              •原始数据每列特征的方差

6.步骤与例子:

      (1) 实例化StandardScaler

     (2)通过fit_transform转换

​
from sklearn.preprocessing import StandardScaler


def stand():
    """
    标准化缩放
    :return:None
    """

    std = StandardScaler()

    data = std.fit_transform([[1., -1., 3.],
                              [2., 4., 2.],
                              [4., 6., -1.]]
                             )
    print(data)
    return None


if __name__ == '__main__':
    stand()

​

 运行结果:

[[-1.06904497 -1.35873244  0.98058068]
 [-0.26726124  0.33968311  0.39223227]
 [ 1.33630621  1.01904933 -1.37281295]]

7.标准化总结:

 在已有样本足够多的情况下比较稳定,适合现代嘈杂大数据场景。

 不同数据类型该如何处理

   数值型数据:标准缩放:

              1、归一化

               2、标准化

              3、缺失值

  类别型数据:one-hot编码

   时间类型:时间的切分

  • 19
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

还是那个同伟伟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值