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基于scrapy采集数据时使用代理服务器的方法
Apr 16 Python
利用Python将时间或时间间隔转为ISO 8601格式方法示例
Sep 05 Python
Python3.5文件修改操作实例分析
May 01 Python
Python3.6+Django2.0以上 xadmin站点的配置和使用教程图解
Jun 04 Python
python高斯分布概率密度函数的使用详解
Jul 10 Python
安装python及pycharm的教程图解
Oct 10 Python
使用 Python 写一个简易的抽奖程序
Dec 08 Python
Python 使用 environs 库定义环境变量的方法
Feb 25 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
May 11 Python
python opencv实现直线检测并测出倾斜角度(附源码+注释)
Dec 31 Python
Jupyter Notebook 远程访问配置详解
Jan 11 Python
python中的时区问题
Jan 14 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 小心urldecode引发的SQL注入漏洞
2011/10/27 PHP
基于xcache的配置与使用详解
2013/06/18 PHP
浅析PHP程序设计中的MVC编程思想
2014/07/28 PHP
php中Socket创建与监听实现方法
2015/01/05 PHP
基于php的CMS中展示文章类实例分析
2015/06/18 PHP
PHP date()格式MySQL中插入datetime方法
2019/01/29 PHP
Laravel 5.5 实现禁用用户注册示例
2019/10/24 PHP
通过DOM脚本去设置样式信息
2010/09/19 Javascript
基于jQuery的前端数据通用验证库
2011/08/08 Javascript
firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误
2015/03/01 Javascript
jQuery使用hide方法隐藏指定元素class样式用法实例
2015/03/30 Javascript
多种JQuery循环滚动文字图片效果代码
2020/06/23 Javascript
javascript RegExp 使用说明
2016/05/21 Javascript
Bootstrap布局方式详解
2016/05/27 Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
2016/11/12 Javascript
Angular.js与node.js项目里用cookie校验账户登录详解
2017/02/22 Javascript
vue-cli2 构建速度优化的实现方法
2019/01/08 Javascript
学习RxJS之JavaScript框架Cycle.js
2019/06/17 Javascript
[04:32]玩具屠夫中文语音节选
2020/08/23 DOTA
Python的gevent框架的入门教程
2015/04/29 Python
Python将图片批量从png格式转换至WebP格式
2020/08/22 Python
详解python 模拟豆瓣登录(豆瓣6.0)
2019/04/18 Python
解决Keras 与 Tensorflow 版本之间的兼容性问题
2020/02/07 Python
python发qq消息轰炸虐狗好友思路详解(完整代码)
2020/02/15 Python
Python通过socketserver处理多个链接
2020/03/18 Python
屈臣氏马来西亚官网:Watsons马来西亚
2019/06/15 全球购物
意大利折扣和优惠券网站:Groupalia
2019/10/09 全球购物
最经典的商业地产项目广告词
2014/03/13 职场文书
实验室的标语
2014/06/20 职场文书
科学发展观活动总结
2014/08/28 职场文书
2014企业领导班子四风对照检查材料思想汇报
2014/09/17 职场文书
2014年林业工作总结
2014/12/05 职场文书
2014年度个人总结范文
2015/03/09 职场文书
高考升学宴主持词
2019/06/21 职场文书
教你怎么用Python实现多路径迷宫
2021/04/29 Python
一文读懂navicat for mysql基础知识
2021/05/31 MySQL