精华内容
下载资源
问答
  • 归一化与标准化的区别
    千次阅读
    2019-09-13 02:06:25

    代码

    import numpy as np
    
    
    def normalization(x):
        """"
        归一化到区间{0,1]
        返回副本
        """
        _range = np.max(x) - np.min(x)
        return (x - np.min(x)) / _range
    
    
    def standardization(x):
        """"
         将输入x 正态标准化  (x - mu) / sigma   ~   N(0,1)
         返回副本
        """
        mu = np.mean(x, axis=0)
        sigma = np.std(x, axis=0)
        return (x - mu) / sigma
    
    
    YUAN = np.random.randint(3, 70, size=5)
    a = normalization(YUAN)
    b = standardization(YUAN)
    print(YUAN, "normalization:", a)
    print(YUAN is a)
    print(YUAN, "standardization:", b)
    print(YUAN is b)
    
    

    结果

    [33 50 60 12 32] normalization: [0.4375     0.79166667 1.         0.         0.41666667]
    False
    [33 50 60 12 32] standardization: [-0.26647587  0.76308999  1.36871697 -1.53829253 -0.32703857]
    False
    

    sklearn.preprocessing.scale 能沿某个轴标准化

    import numpy as np
    from sklearn import  preprocessing
    
    def standardization(x):
        """"
         将输入x 正态标准化  (x - mu) / sigma   ~   N(0,1)
         返回副本
        """
        mu = np.mean(x, axis=0)
        sigma = np.std(x, axis=0)
        return (x - mu) / sigma
    
    YUAN = np.random.randint(3, 70, size=5)
    a = standardization(YUAN)
    b = preprocessing.scale(YUAN)
    
    print(YUAN, "normalization:", a)
    print(YUAN, "preprocessing.scale:", b)
    
    print(a == b)
    
    

    结果

    [ 8 14 64 51 61] normalization: [-1.32656065 -1.07468204  1.02430632  0.47856935  0.89836702]
    [ 8 14 64 51 61] preprocessing.scale: [-1.32656065 -1.07468204  1.02430632  0.47856935  0.89836702]
    [ True  True  True  True  True]
    
    更多相关内容
  • ARCGIS数据处理标准化归一化的处理工具箱
  • 归一化与标准化区别

    2020-09-16 10:41:01
    归一化与标准化区别 归一化 常用的方法是通过对原始数据进行线性变换把数据映射到[0,1]之间,变换函数为: 不同变量往往量纲不同,归一化可以消除量纲对最终结果的影响,使不同变量具有可比性。在不涉及距离度量、...

    归一化与标准化区别

    归一化

    常用的方法是通过对原始数据进行线性变换把数据映射到[0,1]之间,变换函数为:

    image-20200916103724244

    不同变量往往量纲不同,归一化可以消除量纲对最终结果的影响,使不同变量具有可比性。在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用归一化方法。比如图像处理中,将RGB图像转换为灰度图像后将其值限定在[0 255]的范围。

    ( transfroms.Normalize)

    标准化

    常用的方法是z-score标准化,经过处理后的数据均值为0,标准差为1,公式是:

    image-20200916103823127

    (BatchNorm2d)

    如果对输出结果范围有要求,用归一化
    如果数据较为稳定,不存在极端的最大最小值,用归一化
    如果数据存在异常值和较多噪音,用标准化,可以间接通过中心化避免异常值和极端值的影响

    我们在对输⼊数据做标准化处理:处理后的任意⼀个特征在数据集中所有样本上的均值为0、标准差为1。标准化处理输⼊数据使各个特征的分布相近:这往往更容易训练出有效的模型。
    通常来说,数据标准化预处理对于浅层模型就⾜够有效了。随着模型训练的进⾏,当每层中参数更新时,靠近输出层的输出较难出现剧烈变化。但对深层神经⽹络来说,即使输⼊数据已做标准化,训练中模型参数的更新依然很容易造成靠近输出层输出的剧烈变化。这种计算数值的不稳定性通常令我们难以训练出有效的深度模型。
    批量归⼀化的提出正是为了应对深度模型训练的挑战。在模型训练时,批量归⼀化利⽤⼩批量上的均值和标准差,不断调整神经⽹络中间输出,从⽽使整个神经⽹络在各层的中间输出的数值更稳定

    展开全文
  • python中归一化标准化模型保存加载,python中归一化标准化模型保存加载
  • 一、标准化归一化区别 归一化其实就是标准化的一种方式,只不过归一化是将数据映射到了[0,1]这个区间中。 标准化则是将数据按照比例缩放,使之放到一个特定区间中。标准化后的数据的均值=0,标准差=1,因而...
  • 将数据转化为libsvm标准格式,将每一行或每一列的矩阵按行归一化到(-1,1)
  • 用来求标准化结果的归一化程序,输入矩阵即可得到归一化的结果
  • 标准化与归一化

    2022-05-06 00:13:04
    另外归一化数据的最大值和最小值有关,缩放比例为,而标准化的缩放比例等于标准差,平移量等于均值,当除了极大值极小值的数据改变时他的缩放比例和平移量也会改变。 常见的归一化标准化 均值归一化(Mean ...

    标准化(Standardization )和归一化(Nomalisation)

    网上对他们的描述纷繁复杂,有些人认为他们是等价的,有些人认为他们是完全不同的,我这里更倾向于认为他们有共通的性质但不是完全相同的。


    首先我们先从定义上分析

    标准化(Standardization):将数据变换为均值为0,标准差为1的分布,变换后依然保留原数据分布

    在这里插入图片描述

    归一化(Normalization):将一列数据变化到某个固定区间(范围)中,通常,这个区间是[0, 1],广义的讲,可以是各种区间,比如映射到[0,1]一样可以继续映射到其他范围,图像中可能会映射到[0,255],其他情况可能映射到[-1,1]
     

    在这里插入图片描述


    两者的联系和差异

    标准化和归一化本质上都是不改变数据顺序的情况下对数据的线性变化,而它们最大的不同是归一化(Normalization)会将原始数据规定在一个范围区间中,而标准化(Standardization)则是将数据调整为标准差为1,均值为0对分布。

    另外归一化只与数据的最大值和最小值有关,缩放比例为\alpha = Xmax-X m i n,而标准化的缩放比例等于标准差\alpha =\sigma,平移量等于均值\beta =\mu,当除了极大值极小值的数据改变时他的缩放比例和平移量也会改变。


    常见的归一化和标准化

    均值归一化(Mean Normalization)
    将数值范围缩放到[−1,1]区间里,数据的均值变为0

    最大最小值归一化(Min-Max Normalization)
    最大最小值归一化简称为归一化,将数值范围缩放到[0,1]区间里

    标准化/z值归一化(Standardization/Z-Score Normalization)

    标准化又叫z值归一化,将数值缩放到0附近,且数据的分布变为均值为0,标准差为1的标准正态分布。 

     


    什么时候需要使用标准化和归一化

    首先标准化和归一化的本质都是数据的特征缩放,而基于数据距离的算法依赖于特征缩放,例如聚类、基于距离的分类算法(KNN、逻辑回归、SVM)、线性回归等;而不基于距离的算法,大部分是分类器不需要特征缩放。

    1. 统计建模中,如回归模型,自变量X XX的量纲不一致导致了回归系数无法直接解读或者错误解读;需要将X XX都处理到统一量纲下,这样才可比;
    2. 机器学习任务和统计学任务中有很多地方要用到“距离”的计算,比如PCA,比如KNN,比如kmeans等等,假使算欧式距离,不同维度量纲不同可能会导致距离的计算依赖于量纲较大的那些特征而得到不合理的结果;
    3. 参数估计时使用梯度下降,在使用梯度下降的方法求解最优化问题时, 归一化/标准化后可以加快梯度下降的求解速度,即提升模型的收敛速度。

    如果对数据范围有严格的要求,使用归一化。

    ML领域更常使用标准化,如果数据不为稳定,存在极端的最大最小值,不要用归一化。在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,标准化表现更好;在不涉及距离度量、协方差计算的时候,可以使用归一化方法。


     批归一化(Batch Normalization)

    就是对每一批数据进行归一化,我们的归一化操作一般都在数据输入层,对输入的数据进行求均值以及求方差做归一化,但是BN的出现打破了这一个规定,我们可以在网络中任意一层进行归一化处理,但每一层对所有数据都进行归一化处理的计算开销太大,因此就和使用最小批量梯度下降一样,批量归一化中的“批量”其实是采样一小批数据,然后对该批数据在网络各层的输出进行归一化处理 。

    BN的好处

    1. 加快训练速度
    2. 可以省去dropout,L1, L2等正则化处理方法
    3. 提高模型训练精度

    参考

    展开全文
  • 特征工程:归一化与标准化

    千次阅读 2022-02-01 20:34:33
    归一化(Normalization)方法泛指把数据特征转换为相同尺度的方法

    样本特征由于来源以及度量单位不同,它们的尺度(Scale),或者说是取值范围有可能差异很大。如果一个机器学习算法在缩放全部或者部分特征后不影响它的学习和预测,我们就称该算法具有尺度不变性(Scale Invariance)。神经网络从理论上应该具有尺度不变性,可以通过参数的调整来适应不同特征的尺度。但是尺度不同的输入特征会增加训练的难度。1

    1/ 最小最大值归一化

    归一化(Normalization)方法泛指把数据特征转换为相同尺度的方法。最小最大值归一化(Min-Max Normalization)是最为简单的归一化方法,通过简单的缩放将每一个特征的取值范围归一到 [ 0 , 1 ] [0,1] [0,1] [ − 1 , 1 ] [-1, 1] [1,1]. 假如样本数据 { x ( n ) } n = 1 N \{\boldsymbol{x}^{(n)}\}^N_{n=1} {x(n)}n=1N,最小最大归一化到 [ 0 , 1 ] [0,1] [0,1] 的公式为:
    x ^ ( n ) = x ( n ) − min ⁡ ( x ( n ) ) max ⁡ n ( x ( n ) ) − min ⁡ n ( x ( n ) ) , \hat{x}^{(n)}=\frac{x^{(n)}-\min{(x^{(n)})}}{\max_n(x^{(n)})-\min_n(x^{(n)})}, x^(n)=maxn(x(n))minn(x(n))x(n)min(x(n)),
    最小最大归一化到 [ − 1 , 1 ] [-1,1] [1,1] ,可以先将数据归一化到 [ 0 , 1 ] [0, 1] [0,1] 之间,然后再进行平移缩放:
    x ^ ( n ) = 2 max n ( x ( n ) ) − min n ( x ( n ) ) ( x ( n ) − min n ( x ( n ) ) ) − 1 , \hat{x}^{(n)}=\frac{2}{\text{max}_n(x^{(n)})-\text{min}_n(x^{(n)})}\left(x^{(n)}-\text{min}_n(x^{(n)})\right)-1, x^(n)=maxn(x(n))minn(x(n))2(x(n)minn(x(n)))1,

    所以将数据利用最小最大归一化到某个范围 [ r 1 , r 2 ] [r_1, r_2] [r1,r2] 的代码为:

    import torch
    import numpy as np
    from sklearn import preprocessing
    np.random.seed(9) # 设置随机种子为 9
    
    def min_max_norm(X, feature_range=(0, 1)):
        r1, r2 = feature_range  # 将数据归一化到 [r1, r2] 之间
        xmin, xmax = X.min(axis=0), X.max(axis=0) # 得到数据的最大最小值
        X_std = (X - xmin) / (xmax - xmin)     # 标准化到 [0, 1]
        X_scaled = X_std * (r2 - r1) + r1      # 数据平移缩放到 [r1, r2]
        return X_scaled
    

    sklearn.preprocessing 中的 MinMaxScaler() 进行对比:

    sample_size = 5
    X = np.random.randn(sample_size) * 255
    X = X.reshape(-1, 1)
    min_max_norm(X, feature_range=(0, 1))    # 数据归一化到 [0, 1] 之间
    preprocessing.MinMaxScaler(feature_range=(0, 1)).fit_transform(X.reshape(-1, 1))
    # array([1.        , 0.73983247, 0.        , 0.98747617, 0.66033068])
    
    min_max_norm(X, feature_range=(-1, 1))   # 数据归一化到 [-1, 1] 之间
    preprocessing.MinMaxScaler(feature_range=(-1, 1)).fit_transform(X.reshape(-1, 1))
    # array([ 1.        ,  0.47966494, -1.        ,  0.97495233,  0.32066137])
    
    # 两种方法得到的结果是一样的
    

    2/ 标准化

    标准化(Standardization)也叫 Z 值归一化(Z-Score Normalization),它的作用是将每一维特征都调整为均值为 0,方差为 1. 首先计算均值与方差:
    μ = 1 N ∑ n = 1 N x ( n ) σ 2 = 1 N ∑ n = 1 N ( x ( n ) − μ ) 2 \begin{aligned} \mu &=\frac{1}{N} \sum_{n=1}^{N} x^{(n)} \\ \sigma^{2} &=\frac{1}{N} \sum_{n=1}^{N}\left(x^{(n)}-\mu\right)^{2} \end{aligned} μσ2=N1n=1Nx(n)=N1n=1N(x(n)μ)2
    然后将特征 x ( n ) x^{(n)} x(n) 减去均值,并除以标准差,得到新的特征值 x ^ ( n ) \hat{x}^{(n)} x^(n)
    x ^ ( n ) = x ( n ) − μ σ \hat{x}^{(n)}=\frac{x^{(n)}-\mu}{\sigma} x^(n)=σx(n)μ
    标准差 σ \sigma σ 不能为零,否则说明这一维的特征没有任何区分性,可以直接删掉。

    标准化的代码:

    def z_score_norm(X):
        mu = X.mean()   # 计算数据的均值
        sigma = X.std() # 计算数据的标准差(方差的平方根)
        return (X - mu) / sigma
    
    z_score_norm(X)
    preprocessing.StandardScaler().fit_transform(X)
    # array([ 0.88537948,  0.17106352, -1.86022047,  0.85099404, -0.04721657])
    

    3/ 归一化与标准化的作用2

    归一化与标准化的本质其实是一种线性变换,即可以看成是对数据进行比例为 α \alpha α 的压缩,然后再平移 β \beta β 个单位。线性变化具有的良好性质是,线性变化不改变原始数据的数值排序。

    而归一化是将数据直接缩放到一个区间内,相对来说比较「硬」,它仅仅只跟数据的最大最小值有关。标准化更加「软」,它的缩放跟每一个点都有关,通过方差(Variance)体现。

    从公式上看,当数据较为集中, α \alpha α 更小,数据在标准化后更为分散,原始数据分布广,那么 α \alpha α 比较大,那么标准化后数据就会被集中到更为小的范围。

    那么什么时候使用归一化,什么时候使用标准化?

    • 如果对输出结果范围有要求,用归一化;
    • 数据较为稳定,不存在极端的最大最小值,用归一化;
    • 数据存在异常值或者较多噪音,用标准化;

    当然使用归一化与标准化并没有一个明确的指标,可以两个方法都试一下,选择表现比较好的。


    1. 邱锡鹏:《神经网络与深度学习》↩︎

    2. 知乎回答:特征工程中的「归一化」有什么作用?— 微调↩︎

    展开全文
  • 在机器学习过程中,对数据的处理过程中,常常需要对数据进行归一化处理,下面介绍(0, 1)标准化的方式,简单的说,其功能就是将预处理的数据的数值范围按一定关系“压缩”到(0,1)的范围类。 通常(0, 1)标注...
  • 本文介绍统计学中标准化与归一化方法,包括计算公式和应用场景,以及两者的差异。 两者计算公式 标准化(Standardization) 和 归一化(normalization) 是数据缩放的两种方法. 标准化缩放数据集为均值为0,标准化差为1...
  • 归一化与标准化

    千次阅读 2020-12-22 06:08:28
    归一化与标准化区别(a) 目的不同,归一化是为了消除纲量压缩到[0,1]区间;标准化只是调整特征整体的分布。 (b) 归一化与最大,最小值有关;标准化均值,标准差有关。 (c) 归一化输出在[0,1]之间;标准化无限制。 ...
  • 归一化标准化区别

    千次阅读 2021-11-29 11:47:13
    归一化标准化都是属于“特征缩放”范畴。广义上,归一化属于标准化方法。 归一化有两种解释: 1、使样本的分布范围缩放到[0,1],又名Rescaling,$x'=\frac{x-min(x)}{max(x)-min(x)}$ 2、使样本的分布范围缩放...
  • 一般在机器学习的模型训练之前,有...数据变换的方法有很多,比如数据平滑,数据聚集,数据概化,数据规范和属性构造等。本篇文章主要介绍数据规范,这是一种比较常用,也比较简单的方法。数据规范是使属性数...
  • 归一化广义上是包含标准化的,本文从狭义上区分两者。 归一化主要是应用于没有距离计算的地方上,标准化则是使用在不关乎权重的地方上,因为各自丢失了距离信息和权重信息。 从概念上看,标准化将数值规约到(0,1)...
  • 归一化标准化

    千次阅读 2022-01-21 09:37:08
    文章目录一、归一化二、标准化总结 一、归一化 由于不同特征值的数值差别可能比较大,因此可以利用归一化对数据进行等比例的缩放到同一小区间内。归一化是以列为操作对象,对每一列的每个数据进行缩放,计算公式...
  • 标准化归一化 超全详解

    千次阅读 多人点赞 2020-09-03 21:48:21
    一、标准化 / 归一化定义 归一化标准化经常被搞混,程度还比较严重,非常干扰大家的理解。为了方便后续的讨论,必须先明确二者的定义。 首先定义常见的结构化数据表格,第一行的表头是表示各种特征,而后每一列...
  • 1.1.定义:归一化把需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。 1.2.优点:归一化使数据有可比性,同时又保持相比较的两个数据之间的相对关系 转换成标准模式,防止仿射变换的影响。 ...
  • 数据归一化标准化区别

    千次阅读 2018-11-26 15:54:53
    声明:内容来源于... ... 这里主要讲连续型特征归一化的常用方法。离散参考[数据预处理:独热编码(One-Hot Encoding)]。 基础知识参考: [均值、方差协方差矩阵...
  • 图像归一化与标准化

    千次阅读 2021-03-27 16:31:15
    归一化(Normalization) 一般来说用的是min-max归一化,缩放到0-1之间,即: Xi−Xmin⁡Xmax⁡−Xmin⁡ \frac{X_{i}-X_{\min }}{X_{\max }-X_{\min }} Xmax​−Xmin​Xi​−Xmin​​ 对于图片来说,由于max是255,min...
  • python 数据归一化/标准化方法代码(离差标准化,log归一化标准化,比例归一化,反正切归一化) 我们使用sklearn来操作: 首先准备数据: import numpy as np from sklearn.preprocessing import StandardScaler,...
  • 为什么会用到归一化标准化? 通俗理解: 主要是为了调整样本数据每个维度的量纲,让每个维度数据量纲相同或接近。为什么要调整量纲?目的是什么? 1.什么是量纲不一样? 现在有一个2分类任务,预测一批零件是合格...
  • 归一化 把数据变成(0,1)或者(1,1)之间的小数。主要是为了数据处理方便提出来的,把数据映射到0...标准化: 在机器学习中,我们可能要处理不同种类的资料,例如,音讯和图片上的像素值,这些资料可能是高维度...
  • 数据的归一化标准化是一个很好的实践,该函数使用标准分数或特征缩放归一化程序对数组的每一列进行归一化。 代码被矢量化以加快速度。
  • 为了消除指标之间的量纲和取值范围差异的影响,需要进行标准化归一化)处理,将数据按照比例进行缩放,使之落入一个特定的区域,便于进行综合分析。 数据规范化方法主要有: – 最小-最大规范化 – 零-均值规范化 ...
  • 标准化与归一化1、标准化(Standardization)和归一化(Normalization)概念1.1、定义1.2、联系和差异一、联系二、差异1.3、标准化归一化的多种方式2、标准化归一化的原因、用途3、什么时候Standardization,什么...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 73,781
精华内容 29,512
关键字:

归一化与标准化的区别