python怎么数据归一化-金沙1005

python怎么数据归一化_基于数据归一化以及python实现方式[通俗易懂]数据归一化:数据的标准化是将数据按比例缩放,使之落入一个小的特定区间,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。为什么要做归一化:1)加快梯度下降求最优解的速度如果两个特征的区间相差非常大,其所形成的等高线非常尖,很有可能走“之字型”路线(垂直等高线走),从而导致需要迭代很多次才能收敛。2)有可能提高精度一些分类器需要计算样本之间的距离,如果一个特征…

数据归一化:

数据的标准化是将数据按比例缩放,使之落入一个小的特定区间,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。

为什么要做归一化:

1)加快梯度下降求最优解的速度

如果两个特征的区间相差非常大,其所形成的等高线非常尖,很有可能走“之字型”路线(垂直等高线走),从而导致需要迭代很多次才能收敛。

2)有可能提高精度

一些分类器需要计算样本之间的距离,如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖(比如这时实际情况是值域范围小的特征更重要)。

归一化类型

1)线性归一化

这种归一化比较适用在数值比较集中的情况,缺陷就是如果max和min不稳定,很容易使得归一化结果不稳定,使得后续的效果不稳定,实际使用中可以用经验常量来代替max和min。

2)标准差标准化

经过处理的数据符合标准正态分布,即均值为0,标准差为1。

3)非线性归一化

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

log函数:x = lg(x)/lg(max)

反正切函数:x = atan(x)*2/pi

python实现

线性归一化

定义数组:x = numpy.array(x)

获取二维数组列方向的最大值:x.max(axis = 0)

获取二维数组列方向的最小值:x.min(axis = 0)

对二维数组进行线性归一化:

def max_min_normalization(data_value, data_col_max_values, data_col_min_values):

“”” data normalization using max value and min value

args:

data_value: the data to be normalized

data_col_max_values: the maximum value of data’s columns

data_col_min_values: the minimum value of data’s columns

“””

data_shape = data_value.shape

data_rows = data_shape[0]

data_cols = data_shape[1]

for i in xrange(0, data_rows, 1):

for j in xrange(0, data_cols, 1):

data_value[i][j] = \

(data_value[i][j] – data_col_min_values[j]) / \

(data_col_max_values[j] – data_col_min_values[j])

标准差归一化

定义数组:x = numpy.array(x)

获取二维数组列方向的均值:x.mean(axis = 0)

获取二维数组列方向的标准差:x.std(axis = 0)

对二维数组进行标准差归一化:

def standard_deviation_normalization(data_value, data_col_means,

data_col_standard_deviation):

“”” data normalization using standard deviation

args:

data_value: the data to be normalized

data_col_means: the means of data’s columns

data_col_standard_deviation: the variance of data’s columns

“””

data_shape = data_value.shape

data_rows = data_shape[0]

data_cols = data_shape[1]

for i in xrange(0, data_rows, 1):

for j in xrange(0, data_cols, 1):

data_value[i][j] = \

(data_value[i][j] – data_col_means[j]) / \

data_col_standard_deviation[j]

非线性归一化(以lg为例)

定义数组:x = numpy.array(x)

获取二维数组列方向的最大值:x.max(axis=0)

获取二维数组每个元素的lg值:numpy.log10(x)

获取二维数组列方向的最大值的lg值:numpy.log10(x.max(axis=0))

对二维数组使用lg进行非线性归一化:

def nonlinearity_normalization_lg(data_value_after_lg,

data_col_max_values_after_lg):

“”” data normalization using lg

args:

data_value_after_lg: the data to be normalized

data_col_max_values_after_lg: the maximum value of data’s columns

“””

data_shape = data_value_after_lg.shape

data_rows = data_shape[0]

data_cols = data_shape[1]

for i in xrange(0, data_rows, 1):

for j in xrange(0, data_cols, 1):

data_value_after_lg[i][j] = \

data_value_after_lg[i][j] / data_col_max_values_after_lg[j]

以上这篇基于数据归一化以及python实现方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

js555888金沙老品牌的版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由思创斯整理,转载请注明出处:https://ispacesoft.com/118780.html

(0)

相关推荐

  • python对比java_python中return用法###前言 书接上文,本文造第二个轮子,也是asyncio包里面非常常用的一个函数run ###一、知识准备 ● 相对于run_until_complete,改动并不大,就是将入口函数重新封装了一下,

  • python 线程队列 lifoqueue – lifo – python零基础入门教程目录 一.python 线程队列 queue 分类 二.python 线程先进后出队列 lifoqueue 简介 三.python 线程先进后出队列 lifoqueue 函数介绍 四.python 线

  • python3.7安装numpy与scipy库(win10)作为python小白,安装这两个库时查阅了许多文档,有些使用的文档隐藏很深,所以在这里自己总结一下。(一)安装numpy(体积小,约20m)(二)安装scipy(三)做完(一)和(二)后报错了,需要改为下载numpy mkl(体积大,约200m)重要的话说三遍:*****(一)和(二)两者不相容,只用(一)是可以的,做完(一)再做(二)会报错的,原因写在(三)里面了****…

    2022年12月13日
  • python基础语法手册下载-python学习手册(第4版)pdfpython学习手册(第4版)内容简介《python学习手册(第4版)》学习python的主要内建对象类型:数字、列表和字典。使用python语句创建和处理对象,并且学习python的通用语法模型。使用函数构造和重用代码,函数是python的基本过程工具。学习python模块:封装语句、函数以及其他工具,以便构建较大的组件。学习python的面向对象编程工具,用于组织程序代码。学习异常处理模型,…

  • 同一台计算机安装多个python_计算机二级python用什么软件python学习过程中,很多教程都是python2版本的但是python2到2020年就不在维护了,所以现在教大家如何在一台计算机上安装python2和python3互不影响,可以自如的切换。不用任何第三方软件简单省力,一次配置就可。第一步下载适合自己电脑的安装包32还是64按照自己的电脑来:python2.7.13和python3.6先安装哪一个版本无所谓。不…

  • python开发app实战(一)-kivy入门写在最前:开发app的主流语言中应该是java,但是苦于没有学过java但目前又没那么多时间重新学,因此就想着用已经入门的python开发两个app练手,学习的过程中看过很多资料,也踩过很多坑,于是就想着将自己的经验写出来分享给大家,希望大家可以少踩些坑,更顺利地学习。本次《python开发app实战》总共分为4个部分,第一部分是kivy的入门教程,第二部分是基于kivy实现一个具有计时器和秒表功能的表,第三部分是基于kivy实现一个科学计算器,第四部分是kivy向移动设备的打包移植。前三个部分博主是已经

  • python网络爬虫经典书籍推荐[通俗易懂]1.python编程:从入门到实践-2016本书是一本针对所有层次的python读者而作的python入门书。全书分两部分:第一部分介绍用python编程所必须了解的基本概念,包括matplotlib、numpy和pygal等强大的python库和工具介绍,以及列表、字典、if语句、类、文件与异常、代码测试等内容;第二部分将理论付诸实践,讲解如何开发三个项目,包括简单的python2d游戏开发如何利用数据生成交互式的信息图,以及创建和定制简单的web应用,并帮读者解决常..

  • python的注释有哪些python的注释有:1、使用【#】表示单行注释,单行注释可以作为单独的一行放在被注释代码行之上;2、python中使用三个单引号或三个双引号表示多行注释。

发表回复

您的电子邮箱地址不会被公开。

联系金沙1005

关注“java架构师必看”公众号

回复4,添加站长微信。

附言:ispacesoft.com网而来。

关注微信
网站地图