python数据归一化及三种方法详解


Posted in Python onAugust 06, 2019

数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。以下是三种常用的归一化方法:

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

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

python数据归一化及三种方法详解 

其中max为样本数据的最大值,min为样本数据的最小值。这种方法有个缺陷就是当有新数据加入时,可能导致max和min的变化,需要重新定义。

min-max标准化python代码如下:

import numpy as np
 
arr = np.asarray([0, 10, 50, 80, 100])
for x in arr:
  x = float(x - np.min(arr))/(np.max(arr)- np.min(arr))
  print x
 
# output
# 0.0
# 0.1
# 0.5
# 0.8
# 1.0

使用这种方法的目的包括:

1、对于方差非常小的属性可以增强其稳定性;

2、维持稀疏矩阵中为0的条目。

下面将数据缩至0-1之间,采用MinMaxScaler函数

from sklearn import preprocessing  
 
import numpy as np 
 
X = np.array([[ 1., -1., 2.], 
 
       [ 2., 0., 0.], 
 
       [ 0., 1., -1.]]) 
 
min_max_scaler = preprocessing.MinMaxScaler() 
 
X_minMax = min_max_scaler.fit_transform(X)

最后输出:

array([[ 0.5 , 0. , 1. ],
          [ 1. , 0.5 , 0.33333333], 
          [ 0. , 1. , 0. ]])

测试用例:

注意:这些变换都是对列进行处理。

当然,在构造类对象的时候也可以直接指定最大最小值的范围:feature_range=(min, max),此时应用的公式变为:

X_std=(X-X.min(axis=0))/(X.max(axis=0)-X.min(axis=0)) 
X_minmax=X_std/(X.max(axis=0)-X.min(axis=0))+X.min(axis=0))

Z-score标准化方法

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

python数据归一化及三种方法详解 

其中 μμ 为所有样本数据的均值,σσ为所有样本数据的标准差。

import numpy as np
 
arr = np.asarray([0, 10, 50, 80, 100])
for x in arr:
  x = float(x - arr.mean())/arr.std()
  print x
 
# output
# -1.24101045599
# -0.982466610991
# 0.0517087689995
# 0.827340303992
# 1.34442799399

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 解析XML文件
Apr 15 Python
Python原始字符串(raw strings)用法实例
Oct 13 Python
python去除所有html标签的方法
May 05 Python
python通过pip更新所有已安装的包实现方法
May 19 Python
一百行python代码将图片转成字符画
Feb 19 Python
python 从文件夹抽取图片另存的方法
Dec 04 Python
Python简单基础小程序的实例代码
Apr 28 Python
PyCharm-错误-找不到指定文件python.exe的解决方法
Jul 01 Python
python json 递归打印所有json子节点信息的例子
Feb 27 Python
解决Python Matplotlib绘图数据点位置错乱问题
May 16 Python
Python爬虫爬取博客实现可视化过程解析
Jun 29 Python
python绘制雷达图实例讲解
Jan 03 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
Aug 06 #Python
PyQt 图解Qt Designer工具的使用方法
Aug 06 #Python
Python 用matplotlib画以时间日期为x轴的图像
Aug 06 #Python
Django Python 获取请求头信息Content-Range的方法
Aug 06 #Python
pytorch中如何使用DataLoader对数据集进行批处理的方法
Aug 06 #Python
django foreignkey外键使用的例子 相当于left join
Aug 06 #Python
Python Django简单实现session登录注销过程详解
Aug 06 #Python
You might like
文章推荐系统(三)
2006/10/09 PHP
php出现Cannot modify header information问题的解决方法大全
2008/04/09 PHP
phpmailer中文乱码问题的解决方法
2014/04/22 PHP
PHP实现的操作数组类库定义与用法示例
2019/05/24 PHP
限制复选框的最大可选数
2006/07/01 Javascript
原生Js与jquery的多组处理, 仅展开一个区块的折叠效果
2011/01/09 Javascript
jQuery新闻滚动插件 jquery.roller.js
2011/06/27 Javascript
JS去除数组重复值的五种不同方法
2013/09/06 Javascript
JavaScript获取网页中第一个链接ID的方法
2015/04/03 Javascript
AngularJS中$http服务常用的应用及参数
2016/08/22 Javascript
JavaScript 闭包详细介绍
2016/09/28 Javascript
nodejs入门教程五:连接数据库的方法分析
2017/04/24 NodeJs
微信小程序实现的涂鸦功能示例【附源码下载】
2018/01/12 Javascript
ionic2中使用自动生成器的方法
2018/03/04 Javascript
vue实现商品加减计算总价的实例代码
2018/08/12 Javascript
layerUI下的绑定事件实例代码
2018/08/17 Javascript
Javascript类型判断相关例题及解析
2020/08/26 Javascript
Python解析xml中dom元素的方法
2015/03/12 Python
利用一个简单的例子窥探CPython内核的运行机制
2015/03/30 Python
举例详解Python中的split()函数的使用方法
2015/04/07 Python
Django1.7+python 2.78+pycharm配置mysql数据库
2016/10/09 Python
11月编程语言排行榜 Python逆袭C#上升到第4
2017/11/15 Python
利用python实现简易版的贪吃蛇游戏(面向python小白)
2018/12/30 Python
Python代码实现删除一个list里面重复元素的方法
2019/04/02 Python
对pyqt5之menu和action的使用详解
2019/06/20 Python
Python assert语句的简单使用示例
2019/07/28 Python
Django Serializer HiddenField隐藏字段实例
2020/03/31 Python
美国家喻户晓的保健品品牌:Vitamin World(维他命世界)
2016/08/19 全球购物
伦敦高级内衣品牌:Agent Provocateur(大内密探)
2016/08/23 全球购物
First Aid Beauty官网:FAB急救面霜
2018/05/24 全球购物
迟到检讨书500字
2014/02/05 职场文书
歌颂祖国的演讲稿
2014/05/04 职场文书
机械加工与数控专业自荐书
2014/06/04 职场文书
2014年导购员工作总结
2014/11/18 职场文书
2016年教师师德师风心得体会
2016/01/12 职场文书
图文详解nginx日志切割的实现
2022/01/18 Servers