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对Excel进行读写操作
Mar 30 Python
Python编程实现的图片识别功能示例
Aug 03 Python
详解如何用OpenCV + Python 实现人脸识别
Oct 20 Python
Pandas探索之高性能函数eval和query解析
Oct 28 Python
python+opencv实现动态物体追踪
Jan 09 Python
使用pygame模块编写贪吃蛇的实例讲解
Feb 05 Python
Python常见工厂函数用法示例
Mar 21 Python
python矩阵转换为一维数组的实例
Jun 05 Python
opencv python 图像去噪的实现方法
Aug 31 Python
对python3中pathlib库的Path类的使用详解
Oct 14 Python
Django model序列化为json的方法示例
Oct 16 Python
pytorch查看网络参数显存占用量等操作
May 12 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 编写的日历
2006/10/09 PHP
PHP-FPM之Chroot执行环境详解
2015/08/03 PHP
PHP实现微信图片上传到服务器的方法示例
2017/06/29 PHP
PHP基于curl模拟post提交json数据示例
2018/06/22 PHP
php校验公钥是否可用的实例方法
2019/09/17 PHP
laravel接管Dingo-api和默认的错误处理方式
2019/10/25 PHP
Yii框架布局文件的动态切换操作示例
2019/11/11 PHP
php接口隔离原则实例分析
2019/11/11 PHP
JavaScript限定复选框的选择个数示例代码
2013/08/25 Javascript
JS去除数组重复值的五种不同方法
2013/09/06 Javascript
JQuery1.8 判断元素是否绑定事件的方法
2014/07/10 Javascript
JavaScript跨平台的开源框架NativeScript
2015/03/24 Javascript
常常会用到的截取字符串substr()、substring()、slice()方法详解
2015/12/16 Javascript
jquery获取复选框的值的简单实例
2016/05/26 Javascript
node.js 动态执行脚本
2016/06/02 Javascript
各式各样的导航条效果css3结合jquery代码实现
2016/09/17 Javascript
AngularJS使用ng-class动态增减class样式的方法示例
2017/05/18 Javascript
用Node提供静态文件服务的方法
2018/07/06 Javascript
Vue单文件组件开发实现过程详解
2020/07/30 Javascript
Python中的并发编程实例
2014/07/07 Python
Python实现读取json文件到excel表
2017/11/18 Python
详解Python自建logging模块
2018/01/29 Python
Python绘制正余弦函数图像的方法
2018/08/28 Python
解决Mac下首次安装pycharm无project interpreter的问题
2018/10/29 Python
Python魔法方法功能与用法简介
2019/04/04 Python
使用Python opencv实现视频与图片的相互转换
2019/07/08 Python
HTML5之SVG 2D入门13—svg对决canvas及长处和适用场景分析
2013/01/30 HTML / CSS
美国真皮手袋品牌:GiGi New York
2017/03/10 全球购物
工程安全员岗位职责
2014/03/09 职场文书
团日活动总结模板
2014/06/25 职场文书
初中家长评语和期望
2014/12/26 职场文书
和谐拯救危机观后感
2015/06/15 职场文书
母亲节感言
2015/08/03 职场文书
2016年十一促销广告语
2016/01/28 职场文书
Spring Boot 整合 Apache Dubbo的示例代码
2021/07/04 Java/Android
《黑岩★★射手 DAWN FALL》BD发售宣传CM公开
2022/04/04 日漫