精华内容
下载资源
问答
  • 数据标准化/归一化normalization

    千次阅读 2018-10-05 08:22:40
    连续型特征还有一种处理方式是,先分桶/分箱(如等频/等距的分)[待写]进行离散后再使用离散数据的处理方法。 离散数据处理参考[数据预处理:独热编码(One-Hot Encoding)]。 基础知识参考: [均值、方差与...

    http://blog.csdn.net/pipisorry/article/details/52247379

    这里主要讲连续型特征归一化的常用方法。

    连续型特征还有一种处理方式是,先分桶/分箱(如等频/等距的分)[待写]进行离散化后再使用离散数据的处理方法。

    离散数据处理参考[数据预处理:独热编码(One-Hot Encoding)]。

    基础知识参考:

    [均值、方差与协方差矩阵]

    [矩阵论:向量范数和矩阵范数]

    数据的标准化(normalization)和归一化

        数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。

        目前数据标准化方法有多种,归结起来可以分为直线型方法(如极值法、标准差法)、折线型方法(如三折线法)、曲线型方法(如半正态性分布)。不同的标准化方法,对系统的评价结果会产生不同的影响,然而不幸的是,在数据标准化方法的选择上,还没有通用的法则可以遵循。

    其中最典型的就是数据的归一化处理,即将数据统一映射到[0,1]区间上。

    归一化的目标

    1 把数变为(0,1)之间的小数
            主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速,应该归到数字信号处理范畴之内。
    2 把有量纲表达式变为无量纲表达式
            归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。 比如,复数阻抗可以归一化书写:Z = R + jωL = R(1 + jωL/R) ,复数部分变成了纯数量了,没有量纲。
    另外,微波之中也就是电路分析、信号系统、电磁波传输等,有很多运算都可以如此处理,既保证了运算的便捷,又能凸现出物理量的本质含义。

    归一化后有两个好处

    1. 提升模型的收敛速度

    如下图,x1的取值为0-2000,而x2的取值为1-5,假如只有这两个特征,对其进行优化时,会得到一个窄长的椭圆形,导致在梯度下降时,梯度的方向为垂直等高线的方向而走之字形路线,这样会使迭代很慢,相比之下,右图的迭代就会很快(理解:也就是步长走多走少方向总是对的,不会走偏)


    2.提升模型的精度

    归一化的另一好处是提高精度,这在涉及到一些距离计算的算法时效果显著,比如算法要计算欧氏距离,上图中x2的取值范围比较小,涉及到距离计算时其对结果的影响远比x1带来的小,所以这就会造成精度的损失。所以归一化很有必要,他可以让各个特征对结果做出的贡献相同。

        在多指标评价体系中,由于各评价指标的性质不同,通常具有不同的量纲和数量级。当各指标间的水平相差很大时,如果直接用原始指标值进行分析,就会突出数值较高的指标在综合分析中的作用,相对削弱数值水平较低指标的作用。因此,为了保证结果的可靠性,需要对原始指标数据进行标准化处理。

        在数据分析之前,我们通常需要先将数据标准化(normalization),利用标准化后的数据进行数据分析。数据标准化也就是统计数据的指数化。数据标准化处理主要包括数据同趋化处理和无量纲化处理两个方面。数据同趋化处理主要解决不同性质数据问题,对不同性质指标直接加总不能正确反映不同作用力的综合结果,须先考虑改变逆指标数据性质,使所有指标对测评方案的作用力同趋化,再加总才能得出正确结果。数据无量纲化处理主要解决数据的可比性。经过上述标准化处理,原始数据均转换为无量纲化指标测评值,即各指标值都处于同一个数量级别上,可以进行综合测评分析。

    从经验上说,归一化是让不同维度之间的特征在数值上有一定比较性,可以大大提高分类器的准确性。

    3. 深度学习中数据归一化可以防止模型梯度爆炸。

    数据需要归一化的机器学习算法

    需要归一化的模型:

            有些模型在各个维度进行不均匀伸缩后,最优解与原来不等价,例如SVM(距离分界面远的也拉近了,支持向量变多?)。对于这样的模型,除非本来各维数据的分布范围就比较接近,否则必须进行标准化,以免模型参数被分布范围较大或较小的数据dominate。
            有些模型在各个维度进行不均匀伸缩后,最优解与原来等价,例如logistic regression(因为θ的大小本来就自学习出不同的feature的重要性吧?)。对于这样的模型,是否标准化理论上不会改变最优解。但是,由于实际求解往往使用迭代算法,如果目标函数的形状太“扁”,迭代算法可能收敛得很慢甚至不收敛。所以对于具有伸缩不变性的模型,最好也进行数据标准化。

            有些模型/优化方法的效果会强烈地依赖于特征是否归一化,如LogisticReg,SVM,NeuralNetwork,SGD等。

    不需要归一化的模型:

        (0/1取值的特征通常不需要归一化,归一化会破坏它的稀疏性。)

        有些模型则不受归一化影响,如DecisionTree。

        ICA好像不需要归一化(因为独立成分如果归一化了就不独立了?)。

        基于平方损失的最小二乘法OLS不需要归一化。

    [线性回归与特征归一化(feature scaling)]

    皮皮blog

     

     

    常见的数据归一化方法

    最常用的是 min-max标准化 和 z-score 标准化。

    min-max标准化(Min-max normalization)/0-1标准化(0-1 normalization)/线性函数归一化/离差标准化

    是对原始数据的线性变换,使结果落到[0,1]区间,转换函数如下:

    其中max为样本数据的最大值,min为样本数据的最小值。

    def Normalization(x):
        return [(float(i)-min(x))/float(max(x)-min(x)) for i in x]

    如果想要将数据映射到[-1,1],则将公式换成:

    x* = x* * 2 -1

    或者进行一个近似

    x* = (x - x_mean)/(x_max - x_min), x_mean表示数据的均值。

    def Normalization2(x):
        return [(float(i)-np.mean(x))/(max(x)-min(x)) for i in x]

    这种方法有一个缺陷就是当有新数据加入时,可能导致max和min的变化,需要重新定义。

    z-score 标准化(zero-mean normalization)

    最常见的标准化方法就是Z标准化,也是SPSS中最为常用的标准化方法,spss默认的标准化方法就是z-score标准化。

    也叫标准差标准化,这种方法给予原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。

    经过处理的数据符合标准正态分布,即均值为0,标准差为1,注意,一般来说z-score不是归一化,而是标准化,归一化只是标准化的一种[lz]。

    其转化函数为:

    x* = (x - μ ) / σ

    其中μ为所有样本数据的均值,σ为所有样本数据的标准差。

    z-score标准化方法适用于属性A的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。该种标准化方式要求原始数据的分布可以近似为高斯分布,否则效果会变得很糟糕。

    标准化的公式很简单,步骤如下

      1.求出各变量(指标)的算术平均值(数学期望)xi和标准差si ;
      2.进行标准化处理:
      zij=(xij-xi)/si
      其中:zij为标准化后的变量值;xij为实际变量值。
      3.将逆指标前的正负号对调。
      标准化后的变量值围绕0上下波动,大于0说明高于平均水平,小于0说明低于平均水平。

     
    1. def z_score(x, axis):

    2. x = np.array(x).astype(float)

    3. xr = np.rollaxis(x, axis=axis)

    4. xr -= np.mean(x, axis=axis)

    5. xr /= np.std(x, axis=axis)

    6. # print(x)

    7. return x

    为什么z-score 标准化后的数据标准差为1?

    x-μ只改变均值,标准差不变,所以均值变为0

    (x-μ)/σ只会使标准差除以σ倍,所以标准差变为1

    这两种最常用方法使用场景:

    1、在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,第二种方法(Z-score standardization)表现更好。

    2、在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用第一种方法或其他归一化方法。比如图像处理中,将RGB图像转换为灰度图像后将其值限定在[0 255]的范围。
    原因是使用第一种方法(线性变换后),其协方差产生了倍数值的缩放,因此这种方式无法消除量纲对方差、协方差的影响,对PCA分析影响巨大;同时,由于量纲的存在,使用不同的量纲、距离的计算结果会不同。而在第二种归一化方式中,新的数据由于对方差进行了归一化,这时候每个维度的量纲其实已经等价了,每个维度都服从均值为0、方差1的正态分布,在计算距离的时候,每个维度都是去量纲化的,避免了不同量纲的选取对距离计算产生的巨大影响。
    [再谈机器学习中的归一化方法(Normalization Method) ]

    皮皮blog

    log函数转换

    通过以10为底的log函数转换的方法同样可以实现归一下,具体方法如下:

    看了下网上很多介绍都是x*=log10(x),其实是有问题的,这个结果并非一定落到[0,1]区间上,应该还要除以log10(max),max为样本数据最大值,并且所有的数据都要大于等于1。

    atan函数转换

    用反正切函数也可以实现数据的归一化。

    使用这个方法需要注意的是如果想映射的区间为[0,1],则数据都应该大于等于0,小于0的数据将被映射到[-1,0]区间上,而并非所有数据标准化的结果都映射到[0,1]区间上。

    Decimal scaling小数定标标准化

    这种方法通过移动数据的小数点位置来进行标准化。小数点移动多少位取决于属性A的取值中的最大绝对值。

    将属性A的原始值x使用decimal scaling标准化到x'的计算方法是:
    x'=x/(10^j)
    其中,j是满足条件的最小整数。
    例如 假定A的值由-986到917,A的最大绝对值为986,为使用小数定标标准化,我们用每个值除以1000(即,j=3),这样,-986被规范化为-0.986。
    注意,标准化会对原始数据做出改变,因此需要保存所使用的标准化方法的参数,以便对后续的数据进行统一的标准化。

    Logistic/Softmax变换

    [Sigmod/Softmax变换 ]

    模糊量化模式

    新数据=1/2+1/2sin[派3.1415/(极大值-极小值)*(X-(极大值-极小值)/2) ] X为原数据

    皮皮blog

     

    数据标准化/归一化的编程实现

    python库实现和调用

    [Scikit-learn:数据预处理Preprocessing data ]

    from: http://blog.csdn.net/pipisorry/article/details/52247379

    --------------------- 本文来自 -柚子皮- 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/pipisorry/article/details/52247379?utm_source=copy

    展开全文
  • 数据标准化

    千次阅读 2015-06-13 17:07:53
    不同数据往往具有不同的量纲,会影响到数据分析的结果,为了消除数据之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比...

    数据标准化(normalization)

    简介

    特征缩放(Feature scaling [1] )也称为数据的标准化(normalization),是将数据按比例缩放,使之落入一个特定区间。不同数据往往具有不同的量纲,会影响到数据分析的结果,为了消除数据之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。其中最典型的就是数据的归一化处理,即将数据统一映射到[0,1]区间上。

    数据标准化优点 [2]

    数据标准化到同一空间后有两个好处:
    1. 加快了梯度下降求最优解的速度;
    2. 有可能提高精度

    数据标准化为什么能提高梯度下降法求解最优解的速度?

    斯坦福机器学习视频做了很好的解释:

    如下图所示,蓝色的圈圈图代表的是两个特征的等高线。其中左图两个特征X1和X2的区间相差非常大,X1区间是[0,2000],X2区间是 [1,5],其所形成的等高线非常尖。当使用梯度下降法寻求最优解时,很有可能走“之字型”路线(垂直等高线走),从而导致需要迭代很多次才能收敛;
    而右图对两个原始特征进行了特征缩放,其对应的等高线显得很圆,在梯度下降进行求解时能较快的收敛。
    因此如果机器学习模型使用梯度下降法求最优解时,特征缩放往往非常有必要,否则很难收敛甚至不能收敛。

    Feature scaling

    数据标准化为什么有可能提高精度?
    一些分类器需要计算样本之间的距离(如欧氏距离),例如KNN。如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖(比如这时实际情况是值域范围小的特征更重要)。

    常见数据标准化类型 [2][3][4]

    线性标准化(Min-Max Normalization)

    也叫离差标准化,是对原始数据的线性变换,使结果落到[0,1]区间,转换函数如下:

    x=xmin(x)max(x)min(x)

    其中 max(x) 为样本数据的最大值, min(x) 为样本数据的最小值。这种归一化方法比较适用在数值比较集中的情况。
    这种方法有个缺陷,如果max和min不稳定,很容易使得归一化结果不稳定,当有新数据加入时,可能导致max和min的变化,需要重新定义。实际使用中可以用经验常量来替代max和min。

    标准差标准化(zero-mean normalization)

    经过处理的数据符合标准正态分布,即均值为0,标准差为1,其转化函数为:

    x=xμσ

    其中 μ 为所有样本数据的均值, σ 为所有样本数据的标准差。

    非线性标准化

    经常用在数据分化比较大的场景,有些数值很大,有些很小。通过一些数学函数,将原始值进行映射。该方法包括 log、指数,正切等。需要根据数据分布的情况,决定非线性函数的曲线。

    log函数转换
    通过以10为底的 log 函数转换的方法同样可以实现归一下,具体方法如下:

    x=log10(x)log10(max(x))

    很多介绍都是 x=log10(x) ,这个结果并非一定落到 [0,1] 区间上,要落到 [0,1] 区间上应该还要除以 log10(max(x)) max(x) 为样本数据最大值,并且所有的数据都要大于等于1。

    arctan函数转换
    用反正切函数也可以实现数据的归一化:

    x=arctan(x)2π

    使用这个方法需要注意的是如果想映射的区间为 [0,1] ,则数据都应该大于等于0,小于0的数据将被映射到 [1,0] 区间上。

    Reference:

    1. Feature scaling - Wikipedia, the free encyclopedia
    2. 为什么一些机器学习模型需要对数据进行归一化
    3. 常见的的样本数据归一化
    4. 数据标准化的几种方法
    展开全文
  • python数据预处理 :数据标准化

    万次阅读 多人点赞 2018-11-25 17:14:41
    在数据分析之前,我们通常需要先将数据标准化(normalization),利用标准化后的数据进行数据分析。数据标准化也就是统计数据的指数化。数据标准化处理主要包括数据同趋化处理和无量纲化处理两个方面。数据同趋化...

    何为标准化:

    在数据分析之前,我们通常需要先将数据标准化(normalization),利用标准化后的数据进行数据分析。数据标准化也就是统计数据的指数化。数据标准化处理主要包括数据同趋化处理和无量纲化处理两个方面。数据同趋化处理主要解决不同性质数据问题,对不同性质指标直接加总不能正确反映不同作用力的综合结果,须先考虑改变逆指标数据性质,使所有指标对测评方案的作用力同趋化,再加总才能得出正确结果。数据无量纲化处理主要解决数据的可比性。

    几种标准化方法:

    归一化Max-Min

    min-max标准化方法是对原始数据进行线性变换。设minA和maxA分别为属性A的最小值和最大值,将A的一个原始值x通过min-max标准化映射成在区间[0,1]中的值x’,其公式为:
    新数据=(原数据-最小值)/(最大值-最小值)
    这种方法能使数据归一化到一个区域内,同时不改变原来的数据结构。

    实现中心化Z-Score

    这种方法基于原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。将A的原始值x使用z-score标准化到x’。
    z-score标准化方法适用于属性A的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。
    新数据=(原数据-均值)/标准差
    这种方法适合大多数类型数据,也是很多工具的默认标准化方法。标准化之后的数据是以0为均值,方差为以的正太分布。但是Z-Score方法是一种中心化方法,会改变原有数据的分布结构,不适合用于对稀疏数据做处理。
    很多时候数据集会存在稀疏特征,表现为标准差小,很多元素值为0,最常见的稀疏数据集是用来做协同过滤的数据集,绝大部分数据都是0。对稀疏数据做标准化,不能采用中心化的方式,否则会破坏稀疏数据的结构。

    用于稀疏数据的MaxAbs

    最大值绝对值标准化(MaxAbs)即根据最大值的绝对值进行标准化,假设原转换的数据为x,新数据为x’,那么x’=x/|max|,其中max为x锁在列的最大值。
    该方法的数据区间为[-1, 1],也不破坏原数据结构的特点,因此也可以用于稀疏数据,一些稀疏矩阵。

    针对离群点的RobustScaler

    有些时候,数据集中存在离群点,用Z-Score进行标准化,但是结果不理想,因为离群点在标准化后丧失了利群特性。RobustScaler针对离群点做标准化处理,该方法对数据中心化的数据的缩放健壮性有更强的参数控制能力。

    python实现

    import numpy as np
    import pandas as pd
    from sklearn import preprocessing
    import matplotlib.pyplot as plt
    from sklearn.datasets import make_moons
    import matplotlib.pyplot as plt
    %matplotlib inline
    
    # 导入数据
    data = make_moons(n_samples=200, noise=10)[0]
    
    #Z-Score标准化
    #建立StandardScaler对象
    zscore = preprocessing.StandardScaler()
    # 标准化处理
    data_zs = zscore.fit_transform(data)
    
    #Max-Min标准化
    #建立MinMaxScaler对象
    minmax = preprocessing.MinMaxScaler()
    # 标准化处理
    data_minmax = minmax.fit_transform(data)
    
    #MaxAbs标准化
    #建立MinMaxScaler对象
    maxabs = preprocessing.MaxAbsScaler()
    # 标准化处理
    data_maxabs = maxabs.fit_transform(data)
    
    #RobustScaler标准化
    #建立RobustScaler对象
    robust = preprocessing.RobustScaler()
    # 标准化处理
    data_rob = robust.fit_transform(data)
    
    # 可视化数据展示
    # 建立数据集列表
    data_list = [data, data_zs, data_minmax, data_maxabs, data_rob]
    # 创建颜色列表
    color_list = ['blue', 'red', 'green', 'black', 'pink']
    # 创建标题样式
    title_list = ['source data', 'zscore', 'minmax', 'maxabs', 'robust']
    
    # 设置画幅
    plt.figure(figsize=(9, 6))
    # 循环数据集和索引
    for i, dt in enumerate(data_list):
        # 子网格
        plt.subplot(2, 3, i+1)
        # 数据画散点图
        plt.scatter(dt[:, 0], dt[:, 1], c=color_list[i])
        # 设置标题
        plt.title(title_list[i])
    # 图片储存 
    plt.savefig('xx.png')
    # 图片展示
    plt.show()
    

    在这里插入图片描述

    参考:
    《python数据分析与数据化运营》 宋天龙

    展开全文
  • 在Python中如何进行数据标准化? 一、Z标准化:实现中心化和正态分布; 二、Min-Max:归一化; 三、MaxAbs:最大绝对值标准化; 四、RobustScaler。 Python实例 z-score; Min-Max; MaxAbs; RobustScaler。 数据...

    转载:https://www.toutiao.com/i6644145067256709645/?tt_from=weixin&utm_campaign=client_share&wxshare_count=1&timestamp=1590562159&app=news_article&utm_source=weixin&utm_medium=toutiao_android&use_new_style=1&req_id=20200527144919010014048130059ACF85&group_id=6644145067256709645

    主要内容:

    • 什么是数据标准化?在Python中如何进行数据标准化?

    一、Z标准化:实现中心化和正态分布;

    二、Min-Max:归一化;

    三、MaxAbs:最大绝对值标准化;

    四、RobustScaler。

    • Python实例

    z-score;

    Min-Max;

    MaxAbs;

    RobustScaler。

    数据标准化是数据预处理中非常重要的一步。在实际应用过程中,我们经常会遇到含有多种特征的数据集,这些特征常常有着不同的分布形态和区间,有着不同的量级(量纲),这很容易对我们的模型训练产生影响。而数据标准化,就是为了消除规模、特征和分布差异对模型的影响而存在。

    另外,将各特征标准化之后,我们可以对其进行加权组合,从而生成新的指标,而原始数据往往不支持我们直接进行加权计算。

    那么今天我们就来看一下,有哪些数据标准化的方法,以及它们分别如何在Python中实现。

    一、Z标准化:实现中心化和正态分布

    Z-Score标准化是基于原始数据的均值和标准差进行的标准化,其转化公式为:

    什么是数据标准化?在Python中如何进行数据标准化?「必学」

     

    其中,z是转化后的数据,x为转化前的数据,μ是整组数据的均值,σ是整组数据的标准差。

    这种方法适合大多数类型的数据,其应用非常广泛。从公式里我们就可以看出来,转化之后其均值将变为0,而方差和标准差将变为1(考虑方差的公式),这部分如果不明白那就不妨在本子上推理一下哦。

    二、Min-Max:归一化

    Min-Max标准化方法会对原始数据进行线性变换,它的转换公式为:

    什么是数据标准化?在Python中如何进行数据标准化?「必学」

     

    很明显,当x为最大值时,会被转换为1;当x为最小值时,对应的新值为0;整组数据会分布在从0到1的区间内,而数据的分布形态并不会发生变化。

    三、MaxAbs:最大绝对值标准化

    在数据科学中,我们经常需要应对稀疏数据,MaxAbs方法对于稀疏数据有着良好的支持。MaxAbs标准化方法与Min-Max方法有些相似,其公式为:

    什么是数据标准化?在Python中如何进行数据标准化?「必学」

     

    即用每一个值除以整组数据中的绝对值的最大值,这样保留了原有数据的正负属性,且使数据落在了[-1,1]闭区间内。需要注意的是,先进行绝对值操作,然后选最大值,而不是先选择最大值,再求绝对值。我已经看到过很多文章把这里弄错了。举个例子,有一组数据[-0.01, -1, -2],如果我们先求最大值再求绝对值,别说归一化了,数据简直要钻到地缝里去了。

    四、RobustScaler

    有些时候,数据中会存在离群点(异常值)。这时如果我们使用z-score标准化就会导致数据很容易失去离群特征。这时我们就可以使用RobustScaler方法,它对于数据中心化和数据的缩放健壮性有着更强的参数调节能力。

    Python实例

    多说无益,放码过来,我们先导入必要的库、iris数据集,并进行一些必要的设置。

    import numpy as np
    import pandas as pd
    from sklearn import preprocessing
    import matplotlib.pyplot as plt
    import matplotlib as mpl
    import seaborn as sns
    from seaborn import load_dataset
    sns.set()
    mpl.rcParams['font.family'] = 'sans-serif'
    mpl.rcParams['font.sans-serif'] = 'SimHei'
    iris = load_dataset('iris').drop('species', axis=1)
    iris.head()
    

    什么是数据标准化?在Python中如何进行数据标准化?「必学」

     

    我们先观察下前两列数据的原始分布情况:

    sns.jointplot(data=iris, color='m',
     x='sepal_length', 
     y='sepal_width');
    

    什么是数据标准化?在Python中如何进行数据标准化?「必学」

     

    Z-score

    我们先来演示z标准化。

    z_scaler = preprocessing.StandardScaler()
    iris_z = z_scaler.fit_transform(iris)
    iris_z = pd.DataFrame(iris_z)
    sns.jointplot(data=iris_z, color='m', x=0, y=1);
    

    可以看到,数据分布形态变化不大,但是数据收敛到了0轴周围。

    什么是数据标准化?在Python中如何进行数据标准化?「必学」

     

    我们看一下转换后数据的均值和标准差:

    什么是数据标准化?在Python中如何进行数据标准化?「必学」

     

    可以看到,虽然有一点点小误差(量级非常小),但是数据基本上是符合均值为0、标准差为1的。

    Min-Max标准化

    然后是Min-Max归一化方法:

    mm_scaler = preprocessing.MinMaxScaler()
    iris_mm = mm_scaler.fit_transform(iris)
    iris_mm = pd.DataFrame(iris_mm)
    sns.jointplot(data=iris_mm, color='m', x=0, y=1);
    

    什么是数据标准化?在Python中如何进行数据标准化?「必学」

     

    这次我们在保持原有数据分布特性的同时,将数据收敛到了0到1之间。

    MaxAbs标准化

    ma_scaler = preprocessing.MaxAbsScaler()
    iris_ma = ma_scaler.fit_transform(iris)
    iris_ma = pd.DataFrame(iris_ma)
    sns.jointplot(data=iris_ma, color='m', x=0, y=1);
    

    什么是数据标准化?在Python中如何进行数据标准化?「必学」

     

    由于iris数据集里没有负值,所以这里不能体现出[-1,1]的数据范围。我们为数据增加一些负值来看看:

    iris_ma = pd.concat([iris_ma, iris_ma.applymap(lambda x: -x)])
    sns.jointplot(data=iris_ma, color='m', x=0, y=1);
    

    什么是数据标准化?在Python中如何进行数据标准化?「必学」

     

    果然是[-1,1]呢,不过我们这里的操作只是为了演示,没有额外的意义。

    RobustScaler

    r_scaler = preprocessing.RobustScaler()
    iris_r = ma_scaler.fit_transform(iris)
    iris_r = pd.DataFrame(iris_r)
    sns.jointplot(data=iris_r, color='m', x=0, y=1);
    

    什么是数据标准化?在Python中如何进行数据标准化?「必学」

     

    嗯……看起来跟MaxAbs没什么区别,这是因为这里不存在什么异常值。这个就留给你们自己来练习一下了!

    以上是使用sklearn提供的标准化工具进行数据标准化的操作,事实上,我们也完全可以自己创造一些标准化工具,实际操作起来并不难哦,大家可以尝试一下。

    展开全文
  • 数据标准化是数据仓库建立过程中的另一个难点和重点。可以说如果企业没有建立自己的数据标准,基本上是无法建立统一的、整合的数据仓库模型的。数据标准有很多理论标准的,比如,国家标准有一个叫《数据元的规范与...
  • 三种常用数据标准化方法

    万次阅读 多人点赞 2018-08-17 16:21:28
    而并非所有数据标准化的结果都映射到[0,1]区间上,其中最常见的标准化方法就是Z标准化,也是SPSS中最为常用的标准化方法:z-score 标准化(zero-meannormalization)也叫标准差标准化,经过处理的数据符合标准正态分布...
  • 两个常用的数据标准化方法及Matlab和Python实现

    万次阅读 多人点赞 2017-12-12 19:13:12
    数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果。为了消除指标(特征)之间的量纲影响,数据集需要进行数据标准化处理,以解决...
  • 一、标准化和归一化的区别归一化其实就是标准化的一种方式,只不过归一化是将数据映射到了[0,1]这个区间中。标准化则是将数据按照比例缩放,使之放到一个特定区间中。标准化后的数据的均值=0,标准差=1,因而标准...
  • Python数据标准化

    千次阅读 2018-07-15 11:18:49
    零一标准化 零一标准化 import pandas as pd import matplotlib.pyplot as mp d = {'name': list('ABCD'), 'value': [1002, 1000, 1010, 1001]} df = pd.DataFrame(d) # 0-1标准化 value...
  • 【R语言】数据标准化处理

    千次阅读 2020-06-10 11:29:20
    1、标准化——数据处理 preProcess(x, method = c("center", "scale"), thresh = 0.95, pcaComp = NULL, na.remove = TRUE, k = 5, knnSummary = mean, outcome = NULL, fudge = 0.2, numUnique = 3, ...
  • <p></p><div class="toc"><h3>文章目录</h3><ul><ul><ul><ul><li>数据标准化</a></li><li><a href="#_7" rel="nofollow" data-token="cd47b6def2f5b8901521d02b02d6f57a" target="_self">常见的几种形式</a></li>...
  • 数据标准化处理

    千次阅读 2019-03-28 21:11:36
    数据标准化是一个常用的数据预处理操作,目的是处理不同规模和量纲的数据,使其缩放到相同的数据区间和范围,以减少规模、特征、分布差异等对模型的影响。除了用作模型计算,标准化后的数据还具有了直接计算并生成...
  • 机器学习Author:louwillMachine LearningLab 一直都有朋友在做机器学习模型时有疑问:我的数据要不要做标准化处理? 这个问题笔者也...
  • 数据标准化的三种最常用方式总结(归一化)

    万次阅读 多人点赞 2019-01-13 23:05:24
    1.介绍   在大型项目的数据分析中,由于数据来源的不同通常会导致数据的量纲、数据的量级产生差异,为了让这些数据具备可比性,需要采用标准化方法来...数据标准化最典型的就是数据的归一化处理,即将数据统一映...
  • 数据标准化【0~1标准化和Z标准化】

    千次阅读 2020-05-29 15:37:58
    数据标准化 一、Z标准化 经过处理后,数据的均值为0,标准差为1。 二、0~1标准化 1.自定义函数: """ 1.0~1标准化:也称离差标准化,它是对原始数据进行线性变换, 使结果落到 [0,1] 区间. X=(x - min)/(max -...
  • 数据标准化: 将数据按比例缩放,使之落入一个小的特定区间,一般目的在于:去除数据的单位限制,转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。数据的归一化便是一个典型的案例。 数据的...
  • 数据标准化 Data Normalization

    万次阅读 多人点赞 2017-05-09 21:48:59
    很显然,这些特征的量纲和数值得量级都是不一样的,在预测房价时,如果直接使用原始的数据值,那么他们对房价的影响程度将是不一样的,而通过标准化处理,可以使得不同的特征具有相同的尺度(Scale)。
  • Pandas之数据标准化

    千次阅读 2018-05-21 19:34:55
    数据标准化:将数据按比例缩放,使之落入到特定区间,一般我们使用0-1标准化。公式:X=(x-min)/(max-min)from pandas import read_csv; df = read_csv("E:\\pythonlearning\\datacode\\firstpart\\4\\4.14\\...
  • 常用的数据标准化方法有最大最小归一化、均值方差标准化、小数定标法、定量特征二值化等。 最大最小归一化,顾名思义,就是利用数据列中的最大值和最小值进行标准化处理,标准化后的数值处于[0,1]之间,计算方式为...
  • Python3实现常用数据标准化方法

    万次阅读 多人点赞 2018-06-16 12:32:50
    常用数据标准化方法python实现 数据标准化是机器学习、数据挖掘中常用的一种方法。包括我自己在做深度学习方面的研究时,数据标准化是最基本的一个步骤。数据标准化主要是应对特征向量中数据很分散的情况,防止小...
  • Kmeans聚类①——数据标准化&归一化&正则化

    万次阅读 多人点赞 2019-06-14 20:55:34
    在进行机器学习之前,经常需要对训练数据进行标准化/归一化/正则化,为什么呢? **1)去除量纲的影响,将有量纲的数值变成无量纲的纯数值; 2)是去除各特征之间数值差异过大的问题,比如一个向量(uv:10000, rate:...
  • 数据标准化处理方法

    千次阅读 2017-10-31 11:56:53
    数据标准化处理方法 在数据分析之前,我们通常需要先将数据标准化(normalization),利用标准化后的数据进行数据分析。数据标准化也就是统计数据的指数化。数据标准化处理主要包括数据同趋化处理和无量纲化处理两个...
  • Z-Score:定义,公式 和 数据标准化

    千次阅读 2020-12-08 17:07:20
    z-score主要的应用是测量原始数据数据总体均值相差多少个标准差。 z-score是比较测试结果与正常结果的一种方法。测试与调查的结果往往有不同的单位和意义,简单地从结果本身来看可能毫无意义。当我们知道小明数学...
  • 在数据分析与挖掘、算法建模的都会用到数据标准化。数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,559,934
精华内容 623,973
关键字:

数据标准化