zoukankan      html  css  js  c++  java
  • 机器学习之归一化和标准化

    因为归一化和标准化在数据分析和处理中都属于数据与预处理。因此,其API都在 sklearn.preprocessing中

    1、归一化

    作用:将数据映射到到某个区域内,默认是0到1之间。

    API: sklearn.preprocessing.MinMaxScaler

    feature_range(0,1)表示将数据映射到0到1之间,也可以指定映射到2到3或者其他的区间。

    数学原理:

     理论乏味,来个例子:

    左边的数组是我们的数据,右边的数组是计算的X′。第二步再乘以(1-0)+0即可。

    结果:

    上代码:

     1 from sklearn.preprocessing import MinMaxScaler
     2 
     3 def mm():
     4     '''
     5     g
     6     归一化处理
     7     :return:
     8     '''
     9     mm = MinMaxScaler()
    10     data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]])
    11     print(data)
    12 if __name__ == '__main__':
    13     mm()

     但是呢,归一化有一个缺点:那就是特别受到异常值的影响,其鲁棒性较差,因为从数学原理角度可以看出其公式中只用到了最大值最小值。

    所以,这个时候就需要推出标准化。

    2、标准化

    因为标准化中使用了平均值和标准差这两个数学指标,而均值和标准差是不容易受到异常值影响的,因此标准化更加稳定。

    API:sklearn.preprocessing.StandardScaler

    数学原理:

    上代码:

     1 from sklearn.preprocessing import StandardScaler
     2 
     3 def Stand():
     4     '''
     5     标准化缩放
     6     :return:
     7     '''
     8     std = StandardScaler()
     9     data = std.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]])
    10     print(data)
    11 if __name__ == '__main__':
    12     Stand()

    --------------------成功,肯定是需要一点一滴积累的--------------------
  • 相关阅读:
    数组优化 Dijkstra 最短路
    F
    树 (p155, 从中序和后续回复二叉树)
    矩阵连乘 LRJ白书 p141 栈 解析表达式
    Train Problem II HDU 1023 卡特兰数
    codevs 1166 矩阵取数游戏
    BZOJ 2754: [SCOI2012]喵星球上的点名
    2017.6.11 校内模拟赛
    HDU 2896 病毒侵袭
    UvaLive 4670 Dominating Patterns
  • 原文地址:https://www.cnblogs.com/GouQ/p/11840653.html
Copyright © 2011-2022 走看看