广告
返回顶部
首页 > 资讯 > 后端开发 > Python >浅谈Python几种常见的归一化方法
  • 280
分享到

浅谈Python几种常见的归一化方法

PythonPython常见Python归一化 2023-05-14 20:05:23 280人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录一:归一化的概念二:归一化的作用三:归一化的类型1:线性归一化2:零-均值归一化(Z-score标准化)3:小数定标规范化4:非线性归一化 四:批归一化(BatchNO

数据归一化是深度学习数据预处理中非常关键的步骤,可以起到统一量纲,防止小数据被吞噬的作用。

一:归一化的概念

归一化就是把所有数据都转化成[0,1]或者[-1,1]之间的数,其目的是为了取消各维数据之间的数量级差别,避免因为输入输出数据数量级差别大而造成网络预测误差过大。

二:归一化的作用

  1. 为了后面数据处理的方便,归一化可以避免一些不必要的数值问题。
  2. 为了程序运行时收敛速度更快
  3. 统一量纲。样本数据的评价标准不一样,需要对其量纲化,统一评价标准,这算是应用层面的需求。
  4. 避免神经元饱和。就是说当神经元的激活在接近0或者1时,在这些区域,梯度几乎为0,这样在反向传播过程中,局部梯度就会接近于0,这样非常不利于网络的训练。
  5. 保证输出数据中数值小的不被吞食。

三:归一化的类型

1:线性归一化

线性归一化也被称为最小-最大规范化;离散标准化,是对原始数据的线性变换,将数据值映射到[0,1]之间。用公式表示为:

{x}'=\frac{x-min(x)}{max(x)-min(x)}

差标准化保留了原来数据中存在的关系,是消除量纲和数据取值范围影响的最简单的方法。代码实现如下:

def MaxMinNormalization(x,Max,Min):
    x = (x - Min) / (Max - Min);
    return x

适用范围:比较适用在数值比较集中的情况

缺点:

  1. 如果max和min不稳定,很容易使得归一化的结果不稳定,使得后续使用效果也不稳定。如果遇到超过目前属性[min,max]取值范围的时候,会引起系统报错。需要重新确定min和max。
  2. 如果数值集中的某个数值很大,则规范化后各值接近于0,并且将会相差不大。(如 1,1.2,1.3,1.4,1.5,1.6,10)这组数据。

2:零-均值归一化(Z-score标准化)

Z-score标准化也被称为标准差标准化,经过处理的数据的均值为0,标准差为1。其转化公式为:

{x}'=\frac{x-\mu }{\delta }

其中\mu为原始数据的均值,\delta为原始数据的标准差,是当前用的最多的标准化公式

这种方法给予原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。经过处理的数据符合标准正态分布,即均值为0,标准差为1,这里的关键在于复合标准正态分布

代码实现如下:

def Z_ScoreNormalization(x,mu,sigma):
    x = (x - mu) / sigma;
    return x

3:小数定标规范化

这种方法通过移动属性值的小数数位,将属性值映射到[-1,1]之间,移动的小数位数取决于属性值绝对值的最大值。转换公式为:

{x}'=\frac{x}{10^{k}}

4:非线性归一化 

这个方法包括log,指数,正切

适用范围:经常用在数据分析比较大的场景,有些数值很大,有些很小,将原始值进行映射。

四:批归一化(BatchNormalization)

1:引入

在以往的神经网络训练时,仅仅只对输入层数据进行归一化处理,却没有在中间层进行归一化处理。虽然我们对输入数据进行了归一化处理,但是输入数据经过了\delta这样的矩阵乘法之后,其数据分布很可能发生很大改变,并且随着网络的层数不断加深。数据分布的变化将越来越大。因此这种在神经网络中间层进行的归一化处理,使得训练效果更好的方法就被称为批归一化(BN)

2:BN算法的优点

  1. 减少了人为选择参数
  2. 减少了对学习率的要求,我们可以使用初始状态下很大的学习率或者当使用较小的学习率时,算法也能够快速训练收敛。
  3. 破换了原来的数据分布,一定程度上缓解了过拟合(防止每批训练中某一个样本经常被挑选到)
  4. 减少梯度消失,加快收敛速度,提高训练精度。

3:批归一化(BN)算法流程

输入:上一层输出结果X={x1,x2,.....xm},学习参数\gamma\beta

算法流程:

1)计算上一层输出数据的均值:

\mu _{\beta }=\frac{1}{m}\sum_{i=1}^{m}x_{i}

其中,m是此次训练样本batch的大小。

2)计算上一层输出数据的标准差:

\delta _{\beta }^{2}=\frac{1}{m}\sum_{i=1}^{m}(x_{i}-\mu _{\beta })^{2}

3)归一化处理得到

\widehat{x_{i}}=\frac{x_{i}+\mu _{\beta }}{\sqrt{\delta _{\beta }^{2}}+\varepsilon }

公式中的\varepsilon是为了避免分母为0而加进去接近于0的很小的值。

4)重构,对经过上面归一化处理得到的数据进行重构,得到:

y_{i}=\gamma \widehat{x_{i}}+\beta

其中\gamma\beta为可学习的参数。

到此这篇关于浅谈一下几种常见的归一化方法的文章就介绍到这了,更多相关常见的归一化方法内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 浅谈Python几种常见的归一化方法

本文链接: https://www.lsjlt.com/news/204869.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 浅谈Python几种常见的归一化方法
    目录一:归一化的概念二:归一化的作用三:归一化的类型1:线性归一化2:零-均值归一化(Z-score标准化)3:小数定标规范化4:非线性归一化 四:批归一化(BatchNo...
    99+
    2023-05-14
    Python Python常见 Python归一化
  • 几种常见的归一化方法
    数据归一化是深度学习数据预处理中非常关键的步骤,可以起到统一量纲,防止小数据被吞噬的作用。 一:归一化的概念 归一化就是把所有数据都转化成[0,1]或者[-1,1]之间的数,其目的是为了取消各维数据之间的数量级差别,避免因为输入输出数据数量...
    99+
    2023-09-03
    深度学习 python 人工智能
  • 浅谈shell 遍历数组的几种方法
    背景 某天遇到一个问题,现象如下:第一种遍历正常打印元素,然而第二种遍历只会打印一个元素! #!/bin/bash # $1 代表文件目录 # 执行 eg: # sh your_shell.sh /user/li...
    99+
    2022-06-04
    shell 遍历数组
  • Python常见的归一化方法有什么作用
    这篇“Python常见的归一化方法有什么作用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python常见的归一化方法有什么...
    99+
    2023-07-05
  • 简单谈谈Python中的几种常见的数据类型
    计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型...
    99+
    2022-06-04
    几种 数据类型 常见
  • 浅谈SpringBoot资源初始化加载的几种方式
    目录一、问题二、资源初始化一、问题   在平时的业务模块开发过程中,难免会需要做一些全局的任务、缓存、线程等等的初始化工作,那么如何解决这个问题呢?方法有多种,但具体又要怎么选择呢?...
    99+
    2022-11-12
  • Android中ListView的几种常见的优化方法总结
    Android中的ListView应该算是布局中几种最常用的组件之一了,使用也十分方便,下面将介绍ListView几种比较常见的优化方法: 首先我们给出一个没有任何优化的Li...
    99+
    2022-06-06
    方法 listview 优化 Android
  • 小谈python里 列表 的几种常用用法
    在python中列表的常用方法主要包括增加,删除,查看和修改。下面以举例子的方法具体说明,首先我们创建两个列表,列表是用[ ]表示的,里面的元素用逗号隔开。   a=[‘hello’,78,15.6,‘你好’] b=[78,1,1,4,...
    99+
    2023-01-30
    几种 常用 列表
  • 浅谈MySQL数据同步到 Redis 缓存的几种方法
    目录1 mysql查完数据,再同步写入到Redis中2 Mysql查完数据,通过发送MQ,在消费者线程去同步Redis3 订阅Mysql的Binlog文件(可借助Canal来进行)4 延迟双删5 延迟双写6 总结1 My...
    99+
    2023-03-19
    MySQL数据同步到Redis缓存 MySQL数据同步
  • 浅谈MySQL数据同步到Redis缓存的几种方法
    目录1 Mysql查完数据,再同步写入到Redis中2 Mysql查完数据,通过发送MQ,在消费者线程去同步Redis3 订阅Mysql的Binlog文件(可借助Canal来进行)4...
    99+
    2023-03-19
    MySQL数据同步到Redis缓存 MySQL数据同步
  • 浅谈MySQL中优化sql语句查询常用的30种方法
    1、 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。  2、 应尽量避免在 where 子句中使用...
    99+
    2022-10-18
  • 浅谈vue中文件下载的几种方式及方法封装
    一、通过对后端发送post请求,使用blob下载文件 function downBlob(res, fileName = "导出报表", format = "xlsx") {   ...
    99+
    2023-01-13
    vue 文件下载
  • Python中执行系统命令常见的几种方法
      Python中执行系统命令常见的几种方法:   (1)os.system   # 仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息  # 如果再命令行下执行,结果直接打印出来  例如:  >>> impor...
    99+
    2023-01-31
    几种方法 命令 常见
  • 浅谈四种快速易用的Python数据可视化方法
    目录热力图二维密度图蜘蛛网图树状图数据可视化是数据科学或机器学习项目中十分重要的一环。通常,你需要在项目初期进行探索性的数据分析(EDA),从而对数据有一定的了解,而且创建可视化确实...
    99+
    2023-05-15
    Python数据 Python数据可视化
  • Python常见的几种数据加密方式
    目录一、md5加密解密增加破解成本的方法SHA1安全哈希算法二、Base64伪加密三、DES/AESAES和DES的区别破解方法四、RSA非对称加密算法使用流程和场景介绍公钥私钥生成...
    99+
    2022-11-11
  • javascript创建对象的几种常见方法
    本篇内容介绍了“javascript创建对象的几种常见方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!既...
    99+
    2022-10-19
  • Matplotlib绘制子图的常见几种方法
    前言 Matplotlib的可以把很多张图画到一个显示界面,在作对比分析的时候非常有用。 对应的有plt的subplot和figure的add_subplo的方法,参数可以是一个三位...
    99+
    2022-11-12
  • 几种常见的HTML与PDF转换方法
    HTML与PDF是两种常见的文档格式,HTML用于在web浏览器中呈现内容,而PDF用于打印和文档共享。有时我们需要将HTML转换成PDF或将PDF转换成HTML以适应不同的需求。本文将介绍几种常见的HTML与PDF转换方法。一、使用在线转...
    99+
    2023-05-14
  • 优化mysql的几种常用方法
    下文我给大家简单讲讲关于优化mysql的几种常用方法,大家之前了解过相关类似主题内容吗?感兴趣的话就一起来看看这篇文章吧,相信看完优化mysql的几种常用方法对大家多少有点帮助吧。   ...
    99+
    2022-10-18
  • Java几种常见的四舍五入的方法
    Java中常见的四舍五入的方法有以下几种:1. Math.round() 方法:该方法接收一个 float 或 double 类型的...
    99+
    2023-08-22
    Java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作