精华内容
下载资源
问答
  • 矩阵归一化处理原理和方法

    千次阅读 2019-12-05 22:37:53
    最近一直在学习机器学习和人工神经网络,总是设计矩阵的归一化处理,以达到无量纲的效果。一直是调用函数包,没有去研究其原理,今天遇到了问题,研究了下。这里说的矩阵归一化是两个层面的应用及其对应的处理方法,...

    矩阵归一化的两种方式

    最近一直在学习机器学习和人工神经网络,总是设计矩阵的归一化处理,以达到无量纲的效果。一直是调用函数包,没有去研究其原理,今天遇到了问题,研究了下。这里说的矩阵归一化是两个层面的应用及其对应的处理方法,原理不同,公式不同,应用场景也不同。

    在数据处理中的归一化

    原理

    数据处理的归一化就是将矩阵的数据以列为单元,按照一定比例,映射到某一区间,当然这里说的归一化是狭义的归一化,不包含标准化,单纯的说归一化:
    含义就不解释了
    其中的字母含义就不解释了
    当然这只是映射到(0,1)之间,常用的还有(-1,1)之间,当然其他任何区间都可以。一般神经网络都是(0,1)之间。
    (m,n)之间的公式大家也应该会推导:
    在这里插入图片描述
    不多解释。神经网络归一化是为了无量纲化,达到均衡各类特征值的影响,但是最后的结果还是要反归一化,才能和原数据的对照。

    实现

    实现的方法很多,当然你可以一步一步拿numpy库去编写,来训练你的python能力,最快的方法是调用sklearn的函数,直接上代码。
    from sklearn.preprocessing import MinMaxScaler
    import numpy as pd

    scalar = MinMaxScaler(feature_range=(0, 1)) # 加载函数
    a = pd.array([[2, 4, 12, 8], [1, 5, 3, 2], [3, 23, 4, 14]]) # 随机的矩阵
    b = scalar.fit_transform(a) # 归一化
    print(b)
    c = scalar.inverse_transform(b) # 反归一化
    print©

    运行结果为:
    [[0.5 0. 1. 0.5 ]
    [0. 0.05263158 0. 0. ]
    [1. 1. 0.11111111 1. ]]
    [[ 2. 4. 12. 8.]
    [ 1. 5. 3. 2.]
    [ 3. 23. 4. 14.]]
    一定记住,按照行计算的。
    不会插入python代码,不好意思,以后就会了。

    在数学中的归一化

    数学中,矩阵的列归一化,就是将矩阵每一列的值,除以每一列所有元素平方和的绝对值,这样做的结果就是,矩阵每一列元素的平方和为1了。
    举个例子,矩阵[1,2,3],将其归一化的结果就是[0.2673,0.5345,0.8018]。其平方和就为1了。
    有没有发现这种情况下就不会有0和1两个数了,前提是全是正数的数据。
    这个做法很简单,感兴趣的小伙伴可以去探索,我还是去学习神经网络把。
    加油!
    会把代码加到博客上的伙伴可以给我留言,谢谢!

    展开全文
  • 一、简单描述意义:数据中心化和标准化在回归分析中是取消由于...二、中心化处理数据的中心化是指原数据减去该组数据的平均值,经过中心化处理后,原数据的坐标平移至中心点(0,0),该组数据的均值变为0,以此也被...

    一、简单描述

    1. 意义:数据中心化和标准化在回归分析中是取消由于量纲不同、自身变异或者数值相差较大所引起的误差。

    2. 原理

      数据标准化:是指数值减去均值,再除以标准差;

      数据中心化:是指变量减去它的均值;

      归一化:把数变为(0,1)之间的小数。

    二、中心化处理

            数据的中心化是指原数据减去该组数据的平均值,经过中心化处理后,原数据的坐标平移至中心点(0,0),该组数据的均值变为0,以此也被称为零均值化。

            简单举例:譬如某小公司老板员工共5人,5人的工资,分别为12000、5000、8000、3000、4000元,这5个数据作为一个独立的数据集,平均值为6400元,每个人的工资依次减去平均水平6400,得到5600、-1400、1600、-3400、-2400,新的5个数据其平均值等于0,这个过程就是数据的中心化。

            下面详细讲解在SPSS中的操作步骤。

            第一步:在分析选择描述统计,接着选择描述

    dff4570e48bdaebf48e95d717aadabe0.png

            第二步:选择所要分析的变量,在选项中勾选平均值即可。

    280c0dfcdd251d55f5d1449fbcc0d71b.png

            输出得到每个变量的平均值如下

    444e94da9a74716d9c6aff26eb5b0e3d.png

            第三步:在工具栏区,在转换中选择计算变量

    a8884647458f15c7865dfb207fe9f7d9.png

            这里,我们第一个计算的是 授课水平这个变量,一开始先给中心化后的变量命名,接着选择变量,然后在输出的结果复制这个变量的平均值(建议直接复制过去),粘贴到数学表达式里面

    1b112279d8cf790cc4733f8edbb10b7d.png
    acab1580348762ba41dd03593e2d148d.png

            我们第二个计算的是对自己大学教育质量评价这个变量,步骤同第一个变量。

    575544fca9f4eb4662671b5ff368c53a.png
    44d49833425fc458b74368e2cfd7fa30.png

            最后,我们得到得到两个新的中心化处理的变量。

    a712541bdd7f72285ced384bad1788a7.png

            我们把这两个变量和新变量的描述性统计数据输出,查看它们的变化结果。

    625a9f9bb1dbb207fe0a5337eb4f7901.png

            我们可以发现,它们的最大值和最小值都发生了改变,并且新变量的均值均为0,这是因为新的两个变量都用变量中的每个值减去均值,所以均值为0,而且我们可以发现它们的标准差和方差都没有发生变化,说明这个数据的形态和分布情况是没有发生改变的,只是平均值进行了移动。

    d7911689bfdaa758d7778e902abb6e3c.png

    三、标准化处理

            大型数据分析项目中,数据来源不同,量纲及量纲单位不同,为了让它们具备可比性,需要采用标准化方法消除由此带来的偏差。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。这就是数据标准化。

            基本原理:数值减去平均值,再除以其标准差,得到均值为0,标准差为1的服从标准正态分布的数据。

            在SPSS中,使用最多的就是Z-score标准化(0-1标准化)方法,这种方法给予原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。经过处理的数据符合标准正态分布,即均值为0,标准差为1。

            在SPSS的处理步骤如下:

            第一步:在分析中选择描述统计,接着选择描述

    b9c0bc9124c77d2045abdaa4d2b83702.png

            第二步:选择所要标准化的变量。在下面勾选将标准化值另存为变量(Z),点击确定。

    3d0e00c02c79c7c05a93c9b93351b69e.png

            我们可以在变量视图发现这个时候新增加了标准化后的三个变量。

    7a5437255741873d5506ea574828709d.png

    四、归一化处理

    归一化方法

    1. 把数变为(0,1)之间的小数 主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速

    2. 把有量纲表达式变为无量纲表达式 归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。

            归一化,也算是数据标准化方法之一。常见的计算公式如下,得到新数据范围在[0,1]之间,归一化由此得名。 

    f7a9aaff55fcc13f8c169f293c4096b3.png

            在SPSS的操作步骤如下:

            第一步:在分析选择描述统计,接着选择描述

    199f0aa53664429a1eb15871421da065.png

    第二步:选择变量和指定输出最大值和最小值。

    eaa9b9394c38aa0eb41a6124918ae75c.png

            第三步:在转换中选择计算变量

    62b5182421e1a989de0f3af06f22f35f.png

            接着在表达式中输入相应的计算公式

    0fc22a5b2414068609b15fc77f49dbeb.png

            可直接在输出窗口复制最大值和最小值。

    10a5efb1640c160b09340ddc9c0f6388.png

            我们可以在描述统计里面查看授课水平和归一化处理后变量的统计结果的区别。

    9b0d6e12925c859911f327c22f233721.png

            我们可以看到,归一化后,新数据范围在[0,1]之间。

    d54c2dee7abbf8c7c642e073003a7212.png

    五、参考资料

    • 什么是数据标准化、中心化、归一化?SPSS又如何实现?

      http://www.datasoldier.net/archives/505

    • 数据的中心化、标准化和归一化

      https://blog.csdn.net/si444555666777/article/details/79743151

    展开全文
  • 归一化报错原理解释

    2020-12-01 20:58:33
    不少小伙伴在开始数据处理,进行归一化的时候,会出现以下报错问题:本文将讲述报错原因以及如何改正。在改错之前,首先要了解归一化的基本知识。 归一化介绍 通常,在做数据分析的时候,数据归一化是必不可少的一步...

    关于归一化报错问题——以Python为例

    不少小伙伴在开始数据处理,进行归一化的时候,会出现以下报错问题
    ValueError: non-broadcastable output operand with shape (8,1) doesn’t match the broadcast shape (8,6)
    本文将讲述报错原因以及如何改正。在改错之前,首先要了解归一化的原理。

    归一化介绍

    通常,在做数据分析的时候,数据归一化是必不可少的一步,特别是对于多维的数据。Why?,简而言之,数据归一化就是将数据中的每一个元素映射到一个较小的区间,这样,多维数据间的数字差距就会减小,消除量纲的影响。特别是在分析多维数据对标签的影响时更为重要。
    常见的归一化方法主要有:

    Min-Max
    xminXmaxXminX\frac{x - minX}{maxX- minX}
    Min-Max归一化方法将所有的值映射到[0, 1]。

    Z-score
    xμσ\frac{x-\mu}{\sigma}
    Z-score方法,其中μ\mu为处理数据中的均值,σ\sigma为处理数据中的方差。该方法将数据归一化为均值为0,方差为1。对于服从正态分布类的数据而言,适用于该归一化方法。
    除上述两种归一化方法,在机器学习中,还有常见的Sigmoid归一化函数、tanh函数……,这里就不一一赘述了。

    报错原理

    我们以Min-Max归一化方法为例,我们将下面矩阵归一化处理:
    [ABCD24560275171243308522439308653499329522499457170439329170765125797796879810059536177672143186318631677] \left[ \begin{matrix} A &B &C &D\\ 245 &602 &751 &712\\ 43 &308 &522 &439\\ 308 &653 &499 &329\\ 522 &499 &457 &170\\ 439 &329 &170 &765\\ 1257 &977 &968 &798\\ 1005 &953 &617 &767\\ 2143 &1863 &1863 &1677 \end{matrix} \right]

    import pandas as pd
    import numpy as np
    from sklearn.preprocessing import MinMaxScaler
    w = pd.read_excel("data.xlsx")
    origin = np.array(w)
    sc = MinMaxScaler()
    data = sc.fit_transform(origin)
    

    处理后得到如下归一化矩阵:

    [ABCD0.096190480.189067520.343177790.35965494000.207914940.178500330.126190480.221864950.194329590.105507630.228095240.122829580.1695215600.188571430.0135048200.394824150.578095240.430225080.471352630.416721960.458095240.4147910.264028350.396151291111] \left[ \begin{matrix} A&B&C&D\\ 0.09619048& 0.18906752& 0.34317779& 0.35965494\\ 0 &0 &0.20791494 &0.17850033\\ 0.12619048& 0.22186495 &0.19432959& 0.10550763\\ 0.22809524 &0.12282958 &0.16952156& 0 \\ 0.18857143& 0.01350482 &0 &0.39482415\\ 0.57809524& 0.43022508& 0.47135263 &0.41672196\\ 0.45809524 &0.414791 & 0.26402835& 0.39615129\\ 1 &1 &1 &1 \end{matrix} \right]
    根据上面个归一化数据可知,对于数据框,Sklearn库中归一化方法是将数据分列进行处理的。现在,我们将A列数据反归一化。返回原来的值:

    #对第一列数据进行反归一化操作
    w2 = data[::, 0]
    #改变数据维度,不然会报错
    w2 = w2.reshape(8, 1)
    pr_data = sc.inverse_transform(w2)
    print(pr_data)
    

    此时报错:
    ValueError: non-broadcastable output operand with shape (8,1) doesn’t match the broadcast shape (8,4)
    这是因为我们上面是将一个数据框进行归一化,而当我们在反归一化时只对其中的一列数据进行操作。而程序无法判断我们进行操作的数据对应数据框的哪一列,自然就无法进行反归一化。
    注意:从数据框中提取数据需要重新塑造维度,若没有改变数据维度,则会报错:
    ValueError: Expected 2D array, got 1D array instead

    解决方案

    针对以上的报错,这里提供两种解决方法:

    1. 用需要反归一化的数据,替换掉历史的数据。

    例如现在用A,B,C前三列数据分析D列数据,得到新的一列数据E需要与原数据D进行比较,这时候我们只需要加上两行代码将新数据E代替D列,再反归一化即可。

    data = pd.DataFrame(data)
    data.iloc[:, 3] = new_data	#新数据列替换D列数据
    data = sc.inverse_transform(data)	#反归一化
    

    注意:系统会利用归一化中存储的最值进行反一化操作,因此在反归一化数据是允许出现在[0,1]外的。

    2. 自己编写归一化函数

    并且实际的数据处理中,对于样本量较小的情况下,调用归一化函数是不合理的。因为小样本数据不符合大数定律,无法客观反映事件的整体特性,即数学语言中的均值,方差,最值等。此时建议对数据归一化处理时所需的数字特征另外获取,并根据数据特性编写归一化代码

    展开全文
  • spss实现中心化处理、标准化处理和归一化处理

    万次阅读 多人点赞 2019-03-19 22:11:33
    文章目录一、中心化、标准化、归一化简单描述二、中心化处理三、标准化处理四、归一化处理五、参考资料 一、中心化、标准化、归一化简单描述 意义:数据中心化和标准化在回归分析中是取消由于量纲不同、自身...

    一、中心化、标准化、归一化简单描述

    1. 意义:数据中心化和标准化在回归分析中是取消由于量纲不同、自身变异或者数值相差较大所引起的误差。
    2. 原理
      数据标准化:是指数值减去均值,再除以标准差;
      数据中心化:是指变量减去它的均值。
      归一化:把数变为(0,1)之间的小数

    二、中心化处理

            数据的中心化是指原数据减去该组数据的平均值,经过中心化处理后,原数据的坐标平移至中心点(0,0),该组数据的均值变为0,以此也被称为零均值化。

            简单举例:譬如某小公司老板员工共5人,5人的工资,分别为12000、5000、8000、3000、4000元,这5个数据作为一个独立的数据集,平均值为6400元,每个人的工资依次减去平均水平6400,得到5600、-1400、1600、-3400、-2400,新的5个数据其平均值等于0,这个过程就是数据的中心化。

            下面详细讲解在SPSS中的操作步骤。

            第一步:在分析选择描述统计,接着选择描述

            第二步:选择所要分析的变量,在选项中勾选平均值即可。

            输出得到每个变量的平均值如下

    描述统计
    个案数
    平均值
    学术氛围
    191
    15.9843
    学习收获
    191
    16.3351
    自主学习
    191
    13.4241
    授课水平
    191
    23.5864
    对自己大学教育质量评价
    191
    66.69
    有效个案数
    191

            第三步:在工具栏区,在转换中选择计算变量

            这里,我们第一个计算的是 授课水平这个变量,一开始先给中心化后的变量命名,接着选择变量,然后在输出的结果复制这个变量的平均值(建议直接复制过去),粘贴到数学表达式里面

            我们第二个计算的是对自己大学教育质量评价这个变量,步骤同第一个变量。

            最后,我们得到得到两个新的中心化处理的变量。

            我们把这两个变量和新变量的描述性统计数据输出,查看它们的变化结果。

            我们可以发现,它们的最大值和最小值都发生了改变,并且新变量的均值均为0,这是因为新的两个变量都用变量中的每个值减去均值,所以均值为0,而且我们可以发现它们的标准差和方差都没有发生变化,说明这个数据的形态和分布情况是没有发生改变的,只是平均值进行了移动。

    三、标准化处理

            大型数据分析项目中,数据来源不同,量纲及量纲单位不同,为了让它们具备可比性,需要采用标准化方法消除由此带来的偏差。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。这就是数据标准化。

            基本原理:数值减去平均值,再除以其标准差,得到均值为0,标准差为1的服从标准正态分布的数据。

            在SPSS中,使用最多的就是Z-score标准化(0-1标准化)方法,这种方法给予原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。经过处理的数据符合标准正态分布,即均值为0,标准差为1。

            在SPSS的处理步骤如下:

            第一步:在分析中选择描述统计,接着选择描述

            第二步:选择所要标准化的变量。在下面勾选将标准化值另存为变量(Z),点击确定。

            我们可以在变量视图发现这个时候新增加了标准化后的三个变量。

    四、归一化处理

    归一化方法

    1. 把数变为(0,1)之间的小数
      主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速
    2. 把有量纲表达式变为无量纲表达式
      归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。

            归一化,也算是数据标准化方法之一。常见的计算公式如下,得到新数据范围在[0,1]之间,归一化由此得名。
    x=xminmaxmin x^*=\frac{x-min}{max-min}

            在SPSS的操作步骤如下:

            第一步:在分析选择描述统计,接着选择描述

    第二步:选择变量和指定输出最大值和最小值。
            第三步:在**转换**中选择**计算变量**。

            接着在表达式中输入相应的计算公式

            可直接在输出窗口复制最大值和最小值。

            我们可以在描述统计里面查看授课水平和归一化处理后变量的统计结果的区别。

            我们可以看到,归一化后,新数据范围在[0,1]之间。

    五、参考资料

    展开全文
  • 批量归一化原理

    2018-09-27 18:06:00
    在数据送入神经网络的某一层进行处理之前,对数据做归一化。按照训练样本的批量进行处理,先减掉这批样本的均值,然后除以标准差,然后进行缩放和平移。缩放和平移参数同训练得到。预测时使用训练时确定的这些值来...
  • 在机器学习过程中,对数据的处理过程中,常常需要对数据进行归一化处理,下面介绍(0, 1)标准化的方式,简单的说,其功能就是将预处理的数据的数值范围按一定关系“压缩”到(0,1)的范围类。通常(0, 1)标注化处理的...
  • 在机器学习过程中,对数据的处理过程中,常常需要对数据进行归一化处理,下面介绍(0, 1)标准化的方式,简单的说,其功能就是将预处理的数据的数值范围按一定关系“压缩”到(0,1)的范围类。通常(0, 1)标注化处理的...
  • 在机器学习过程中,对数据的处理过程中,常常需要对数据进行归一化处理,下面介绍(0, 1)标准化的方式,简单的说,其功能就是将预处理的数据的数值范围按一定关系“压缩”到(0,1)的范围类。通常(0, 1)标注化处理的...
  • 通常我们将车辆速度这些变量称为评价指标,不同的评价指标之间往往具有不同的量纲,为了消除指标之间量纲的影响,需要进行数据归一化处理,原始数据经过数据归一化处理后,各指标处于同一数量级,适合进行综合对比...
  • 最大最小归一化,顾名思义,就是利用数据列中的最大值和最小值进行标准化处理,标准化后的数值处于[0,1]之间,计算方式为数据与该列的最小值作差,再除以极差。 具体公式为:x′=x−minmax−min x'=\frac{x
  • 浅谈利用numpy对矩阵进行归一化处理的方法本文不讲归一化原理,只介绍实现(事实上看了代码就会懂原理),代码如下:def Normalize(data):m = np.mean(data)mx = max(data)mn = min(data)return [(float(i) - m) / (mx...
  • 数据归一化原理

    千次阅读 2018-08-21 22:14:47
    1、min_max方法: 公式很简单(x - min) / (max - min),一般用于...上述两种方法最常见的归一化方法,但预测数据可能大于max,或者小于min;或者不符合以前的均值方差,会造成一定误差。 3、非线性变换: logis...
  • LRN 局部归一化处理

    2019-05-05 19:58:17
    局部响应归一化原理是仿造生物学上活跃的神经元对相邻神经元的抑制现象(侧抑制),对局部神经元的活动创建竞争机制,使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力。...
  • 本文不讲归一化原理,只介绍实现(事实上看了代码就会懂原理),代码如下: def Normalize(data): m = np.mean(data) mx = max(data) mn = min(data) return [(float(i) - m) / (mx - mn) for i in data] ...
  • 语音识别语料归一化处理的方法

    千次阅读 2018-09-25 22:12:36
    在进行语音识别模型的训练和测试语料收集的过程中,我们需要对收集到的语料进行归一化处理。...对语料进行归一化处理的基本原理是:取一段语料中幅度最大的点将其幅度拉大到接近1,记录拉大的比例,再...
  • 在机器学习过程中,对数据的处理过程中,常常需要对数据进行归一化处理,下面介绍(0, 1)标准化的方式,简单的说,其功能就是将预处理的数据的数值范围按一定关系“压缩”到(0,1)的范围类。通常(0, 1)标注化处理的...
  • 本文不讲归一化原理,只介绍实现(事实上看了代码就会懂原理),代码如下: def Normalize(data): ...以上这篇浅谈利用numpy对矩阵进行归一化处理的方法就是小编分享给大家的全部内容了,希望能给大家一
  • 在机器学习过程中,对数据的处理过程中,常常需要对数据进行归一化处理,下面介绍(0, 1)标准化的方式,简单的说,其功能就是将预处理的数据的数值范围按一定关系“压缩”到(0,1)的范围类。 通常(0, 1)标注...
  • 在机器学习过程中,对数据的处理过程中,常常需要对数据进行归一化处理,下面介绍(0, 1)标准化的方式,简单的说,其功能就是将预处理的数据的数值范围按一定关系“压缩”到(0,1)的范围类。通常(0, 1)标注化处理的...
  • 在机器学习过程中,对数据的处理过程中,常常需要对数据进行归一化处理,下面介绍(0, 1)标准化的方式,简单的说,其功能就是将预处理的数据的数值范围按一定关系“压缩”到(0,1)的范围类。通常(0, 1)标注化处理的...
  • 根据控制台的输出可以看到,“OverflowError: math range ...查看博主的相关博客),可知在进行归一化处理时,有包含以e为底数的指数计算,当输入的数值过大,就会报出此类错误,这样可以考虑,另一种归一化的处理...
  • 归一化

    2021-03-18 22:30:56
    图像归一化就是通过一系列变换(即利用图像的不变矩寻找一组参数使其能够消除其他变换函数对图像变换的影响),将待处理的原始图像转换成相应的唯一标准形式(该标准形式图像对平移、旋转、缩放等仿射变换具有不变...
  • 1. 归一化归一化就是要把需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。首先归一化是为了后面数据处理的方便,其次是保证程序运行时收敛加快。归一化的具体作用是归纳统一样本的统计分布性。...
  • 前言这是OpenCV图像处理专栏的第七篇文章,主要为大家介绍一下直方图均衡算法的原理以及提供一个我的C++代码实现。介绍直方图均衡,是对图像进行非线性拉伸,使得一定范围内像素值的数量的大致相同。这样原来...
  • 在统计分析、数据挖掘过程中,经常性的接触到数据的标准化处理、数据中心化处理,还有数据归一化处理,那么它们各自是什么意思?如何通过SPSS软件实现呢?大型数据分析项目中,数据来源不同,量纲及量纲单位不同,...
  • 图像归一化

    2018-02-06 12:58:00
    近年来, 基于矩的图像归一化技术受到了人们的普遍关注, 其基本工作原理为: 首先利用图像中对仿射变换具有不变性的矩来确定变换函数的参数, 然后利用此参数确定的变换函数把原始图像变换为一个...
  • 为了代码实现方便,本文使用的图像是灰度图,至于RGB图像,其实现原理类似,区别仅在于通道数不一致而已。下图是数字图像处理中经常采用的lena图像,本文将使用改图进行说明。 二、中心 中心是将每个像素...

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 335
精华内容 134
关键字:

归一化处理原理