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自定义类并使用的方法
May 07 Python
Python制作简易注册登录系统
Dec 15 Python
python getopt详解及简单实例
Dec 30 Python
Python文件的读写和异常代码示例
Oct 31 Python
python中使用psutil查看内存占用的情况
Jun 11 Python
python 用下标截取字符串的实例
Dec 25 Python
在Python 不同级目录之间模块的调用方法
Jan 19 Python
python读写csv文件方法详细总结
Jul 05 Python
PyTorch中permute的用法详解
Dec 30 Python
Python内建序列通用操作6种实现方法
Mar 26 Python
Python matplotlib 绘制双Y轴曲线图的示例代码
Jun 12 Python
python爬虫scrapy框架之增量式爬虫的示例代码
Feb 26 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连接SQLServer2005方法及代码
2013/12/26 PHP
php中多维数组按指定value排序的实现代码
2014/08/19 PHP
Ajax请求PHP后台接口返回信息的实例代码
2018/08/21 PHP
基于JQuery实现异步刷新的代码(转载)
2011/03/29 Javascript
JS 自定义带默认值的函数
2011/07/21 Javascript
Windows 系统下安装和部署Egret的开发环境
2014/07/31 Javascript
Javascript中拼接大量字符串的方法
2015/02/05 Javascript
JavaScript toUpperCase()方法使用详解
2016/08/26 Javascript
微信小程序 本地数据存储实例详解
2017/04/13 Javascript
jQuery实现div跟随鼠标移动
2020/08/20 jQuery
Vue的H5页面唤起支付宝支付功能
2019/04/18 Javascript
layui监听单元格编辑前后交互的例子
2019/09/16 Javascript
基于vue+echarts数据可视化大屏展示的实现
2020/12/25 Vue.js
python使用cPickle模块序列化实例
2014/09/25 Python
python实现在每个独立进程中运行一个函数的方法
2015/04/23 Python
通过数据库对Django进行删除字段和删除模型的操作
2015/07/21 Python
Django ORM框架的定时任务如何使用详解
2017/10/19 Python
Python使用functools实现注解同步方法
2018/02/06 Python
python sys,os,time模块的使用(包括时间格式的各种转换)
2018/04/27 Python
用Python实现BP神经网络(附代码)
2019/07/10 Python
python opencv将图片转为灰度图的方法示例
2019/07/31 Python
TensorFlow tf.nn.max_pool实现池化操作方式
2020/01/04 Python
全球知名旅游社区法国站点:TripAdvisor法国
2016/08/03 全球购物
美国Randolph太阳镜官网:美国制造的飞行员太阳镜和射击眼镜
2018/06/15 全球购物
西班牙最大的婴儿用品网上商店:Bebitus
2019/05/30 全球购物
如何让Java程序执行效率更高
2014/06/25 面试题
环境工程与管理大学毕业生求职信
2013/10/02 职场文书
家居饰品店创业计划书
2014/01/31 职场文书
租房安全协议书
2014/08/20 职场文书
小学校长汇报材料
2014/08/20 职场文书
机关干部四风问题自我剖析及整改措施
2014/10/26 职场文书
感谢信格式范文
2015/01/22 职场文书
颐和园导游词
2015/01/30 职场文书
通讯稿范文
2015/07/22 职场文书
JavaScript中10个Reduce常用场景技巧
2022/06/21 Javascript
CSS元素定位之通过元素的标签或者元素的id、class属性定位详解
2022/09/23 HTML / CSS