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脚本实现虾米网签到功能
Apr 12 Python
python基于ID3思想的决策树
Jan 03 Python
python pandas中DataFrame类型数据操作函数的方法
Apr 08 Python
python 集合 并集、交集 Series list set 转换的实例
May 29 Python
python通过Windows下远程控制Linux系统
Jun 20 Python
python爬虫获取百度首页内容教学
Dec 23 Python
基于python生成器封装的协程类
Mar 20 Python
python如何读取bin文件并下发串口
Jul 05 Python
python基于Selenium的web自动化框架
Jul 14 Python
如何基于python实现画不同品种的樱花树
Jan 03 Python
PyCharm MySQL可视化Database配置过程图解
Jun 09 Python
GitHub上值得推荐的8个python 项目
Oct 30 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
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
2014/06/04 PHP
javascript 动态参数判空操作
2008/12/22 Javascript
jQuery 下拉列表 二级联动插件分享
2012/03/29 Javascript
关于innerHTML后丢失动态绑定的EVENT问题解决方法
2013/05/19 Javascript
详解AngularJS过滤器的使用
2016/03/11 Javascript
jQuery使用cookie与json简单实现购物车功能
2016/04/15 Javascript
jQuery 如何给Carousel插件添加新的功能
2016/04/18 Javascript
Jquery修改image的src属性,图片不加载问题的解决方法
2016/05/17 Javascript
浅谈jQuery中的checkbox问题
2016/08/10 Javascript
JS实现拖拽的方法分析
2016/12/20 Javascript
微信小程序支付之c#后台实现方法
2017/10/19 Javascript
使用D3.js创建物流地图的示例代码
2018/01/27 Javascript
微信小程序使用canvas自适应屏幕画海报并保存图片功能
2019/07/25 Javascript
详解如何在Javascript和Sass之间共享变量
2019/11/13 Javascript
Vue中keep-alive 实现后退不刷新并保持滚动位置
2020/03/17 Javascript
[05:00]第二届DOTA2亚洲邀请赛主赛事第三天比赛集锦.mp4
2017/04/04 DOTA
[01:38]完美世界DOTA2联赛PWL S3 集锦第四期
2020/12/21 DOTA
python查找目录下指定扩展名的文件实例
2015/04/01 Python
Python中的filter()函数的用法
2015/04/27 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
2019/08/01 Python
Python环境下安装PyGame和PyOpenGL的方法
2020/03/25 Python
用css3制作纸张效果(外翻卷角)
2013/02/01 HTML / CSS
在子网210.27.48.21/30种有多少个可用地址?分别是什么?
2014/07/27 面试题
酒吧总经理岗位职责
2013/12/10 职场文书
最新党员思想汇报
2014/01/01 职场文书
创业计划书的内容步骤和要领
2014/01/04 职场文书
先进事迹报告会主持词
2014/04/02 职场文书
《小动物过冬》教学反思
2014/04/17 职场文书
安全负责人任命书
2014/06/06 职场文书
客户答谢会活动方案
2014/08/31 职场文书
幼儿园保育员随笔
2015/08/14 职场文书
如何书写公司员工保密协议?
2019/06/27 职场文书
HTML中table表格拆分合并(colspan、rowspan)
2021/04/07 HTML / CSS
使用这 6个Vue加载动画库来减少我们网站的跳出率
2021/05/18 Vue.js
使用php的mail()函数实现发送邮件功能
2021/06/03 PHP
Java实现房屋出租系统详解
2021/10/05 Java/Android