数据标准化方法及其Python代码实现

数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。目前数据标准化方法有多种,归结起来可以分为直线型方法(如极值法、标准差法)、折线型方法(如三折线法)、曲线型方法(如半正态性分布)。不同的标准化方法,对系统的评价结果会产生不同的影响,然而不幸的是,在数据标准化方法的选择上,还没有通用的法则可以遵循。

常见的方法有:min-max标准化(Min-max normalization),log函数转换,atan函数转换,z-score标准化(zero-mena normalization,此方法最为常用),模糊量化法,均值归一化。本文只介绍min-max标准化、Z-score标准化方法、均值归一化、log函数转换、atan函数转换。

data = [1, 3, 4, 5, 2, 13, 23, 71, 11, 19, 9, 24, 38]

一、min-max标准化(Min-Max Normalization)

也称为离差标准化,是对原始数据的线性变换,使结果值映射到[0 - 1]之间。转换函数如下:

from __future__ import print_function, division

# min-max标准化方法data0 = [(x - min(data))/(max(data) - min(data)) for x in data]

二、Z-score标准化方法

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

from __future__ import print_function
import math

# 均值
average = float(sum(data))/len(data)

# 方差
total = 0
for value in data:
    total += (value - average) ** 2

stddev = math.sqrt(total/len(data))

# z-score标准化方法
data1 = [(x-average)/stddev for x in data]

三、均值归一化

两种方式,以max为分母的归一化方法和以max-min为分母的归一化方法

from __future__ import print_function

# 均值
average = float(sum(data))/len(data)

# 均值归一化方法
data2_1 = [(x - average )/max(data) for x in data]

data2_2 = [(x - average )/(max(data) - min(data)) for x in data]

四、log函数转换方法

from __future__ import print_function

import math

# log2函数转换
data3_1 = [math.log2(x) for x in data]

# log10函数转换
data3_2 = [math.log10(x) for x in data]

五、atan函数转换方法

from __future__ import print_function

import math

# atan函数转换方法
data4 = [math.atan(x) for x in data]

原文地址:https://www.cnblogs.com/yahengwang/p/10634010.html

时间: 2024-08-26 16:25:20

数据标准化方法及其Python代码实现的相关文章

R中,数据标准化方法

标准化方法(Normalization Method)数据的标准化是将数据按比例缩放,使之落入一个小的特定区间.由于指标体系的各个指标度量单位是不同的,为了能够将指标参与评价计算,需要对指标进行规范化处理,通过函数变换将其数值映射到某个数值区间.一般常用的有以下几种方法.(1) 最小-最大规范化对原始数据进行线性变换.假定MaxA与MinA分别表示属性A的最大与最小值.最小最大规范化通过计算将属性A的值映射到区间[a, b]上的v.一般来说,将最小-最大规范化在用于信用指标数据上,常用的有以下两

在代理中托管特殊方法的python代码实现

任务简单的介绍是: 在新风格对象模型中,Python操作其实是在类中查找特殊方法的(经典对象是在实例中进行操作的),现在需要将一些新风格的实例包装到代理中,,此代理可以选择将一些特殊的方法委托给内部的被包装对象. 代码实施为: 1 class Proxy(object): 2 """所有代理的基类""" 3 def __init__(self, obj): 4 super(Proxy, self).__init__() #少了此补会导致无限递归循

[转] [机器学习] 常用数据标准化(正则化)的方法

数据正则化 目的:为了加快训练网络的收敛性,可以不进行归一化处理 源地址:http://blog.sina.com.cn/s/blog_8808cae20102vg53.html 而在多指标评价体系中,由于各评价指标的性质不同,通常具有不同的量纲和数量级.当各指标间的水平相差很大时,如果直接用原始指标值进行分析,就会突出数值较高的指标在综合分析中的作用,相对削弱数值水平较低指标的作用.因此,为了保证结果的可靠性,需要对原始指标数据进行标准化处理. 目前数据标准化方法有多种,归结起来可以分为直线型

转:数据标准化/归一化normalization

转自:数据标准化/归一化normalization 这里主要讲连续型特征归一化的常用方法.离散参考[数据预处理:独热编码(One-Hot Encoding)]. 基础知识参考: [均值.方差与协方差矩阵] [矩阵论:向量范数和矩阵范数] 数据的标准化(normalization)和归一化 数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间.在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较

Python数据标准化、归一化

在进行数据分析或者机器学习时,通常需要对数据进行预处理,其中主要的步骤就是数据标准化/归一化. 常用的数据标准化和归一化方法主要有: 1. 最大最小标准化 y=(x-min(x))/(max(x)-min(x)),x为一序列,即x={x1,x2,x3......},max(x)为最大值,min(x)为最小值 2. z-score标准化 y=(x-mean(x))/std(x),mean(x)指的是均值,std(x)指的是标准差,结果会形成均值为0,方差为1的序列 3. 直接归一化 y=x/sum

在Linux下调试Python代码的各种方法

这是一个我用于调试或分析工具概述,不一定是完整全面,如果你知道更好的工具,请在评论处标记. 日志 是的,的确,不得不强调足够的日志记录对应用程序是多么的重要.您应该记录重要的东西,如果你的记录足够好的话,你可以从日志中找出问题从而节省大量的时间. 如果你曾经用print语句来调试代码现在停下吧,用logging.debug替代,开始可以慢慢来,以后完全禁用它... 追踪有时看到程序如何被执行会很有帮助.你可以使用IDE的调试共轭ngn一步一步的运行程序,但你需要知道你要找的是什么,否则这将会是一

提升python代码运行的5种方法?

不论什么语言我们都需要注意性能优化问题,提高执行效率.选择了脚本语言就要忍受其速度,这句话在某种程度上说明了Python作为脚本语言的不足之处,那就是执行效率和性能不够亮.尽管Python从未如C和Java一般快速,但是不少Python项目都处于开发语言领先位置. Python很简单易用,但大多数人使用Python都知道在处理密集型cpu工作时,它的数量级依然低于C.Java和JavaScript.但不少第三方不愿赘述Python的优点,而是决定自内而外提高其性能.如果你想让Python在同一硬

让Python代码更快运行的 5 种方法

不论什么语言,我们都需要注意性能优化问题,提高执行效率.选择了脚本语言就要忍受其速度,这句话在某种程度上说明了Python作为脚本语言的不足之处,那就是执行效率和性能不够亮.尽管Python从未如C和Java一般快速,但是不少Python项目都处于开发语言领先位置. Python很简单易用,但大多数人使用Python都知道在处理密集型cpu工作时,它的数量级依然低于C.Java和JavaScript.但不少第三方不愿赘述Python的优点,而是决定自内而外提高其性能.如果你想让Python在同一

数据预处理速度高倍提升,3行python代码简单搞定!

Python 是机器学习领域内的首选编程语言,它易于使用,也有很多出色的库来帮助你更快处理数据.但当我们面临大量数据时,一些问题就会显现-- 目前,大数据(Big Data)这个术语通常用于表示包含数十万数据点的数据集.在这样的尺度上,工作进程中加入任何额外的计算都需要时刻注意保持效率.在设计机器学习系统时,数据预处理非常重要--在这里,我们必须对所有数据点使用某种操作. 在默认情况下,Python 程序是单个进程,使用单 CPU 核心执行.而大多数当代机器学习硬件都至少搭载了双核处理器.这意味