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使用Flask框架获取用户IP地址的方法
Mar 21 Python
Python里disconnect UDP套接字的方法
Apr 23 Python
Python中文分词实现方法(安装pymmseg)
Jun 14 Python
python中urlparse模块介绍与使用示例
Nov 19 Python
Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法
Jan 11 Python
解决django 新增加用户信息出现错误的问题
Jul 28 Python
Python unittest工作原理和使用过程解析
Feb 24 Python
Python3标准库glob文件名模式匹配的问题
Mar 13 Python
Python如何根据时间序列数据作图
May 12 Python
在pycharm中debug 实时查看数据操作(交互式)
Jun 09 Python
Python用Jira库来操作Jira
Dec 28 Python
python基础之匿名函数详解
Apr 21 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
使用Apache的rewrite技术
2006/06/22 PHP
解析php中session的实现原理以及大网站应用应注意的问题
2013/06/17 PHP
解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
2013/06/26 PHP
php合并js请求的例子
2013/11/01 PHP
PHP编程入门的基本语法知识点总结
2016/01/26 PHP
Thinkphp5框架中引入Markdown编辑器操作示例
2020/06/03 PHP
jquery post方式传递多个参数值后台以数组的方式进行接收
2013/01/11 Javascript
Javascript学习笔记之函数篇(四):arguments 对象
2014/11/23 Javascript
jQuery判断元素上是否绑定了指定事件的方法
2015/03/17 Javascript
浅析Node.js中使用依赖注入的相关问题及解决方法
2015/06/24 Javascript
jQuery实现仿微软首页感应鼠标变化滑动窗口效果
2015/10/08 Javascript
利用Angularjs实现幻灯片效果
2016/09/07 Javascript
微信小程序 Flex布局详解
2016/10/09 Javascript
JavaScript函数基础详解
2017/02/03 Javascript
localStorage的黑科技-js和css缓存机制
2017/02/06 Javascript
extjs简介_动力节点Java学院整理
2017/07/17 Javascript
改进 JavaScript 和 Rust 的互操作性并深入认识 wasm-bindgen 组件
2019/07/13 Javascript
在react项目中使用antd的form组件,动态设置input框的值
2020/10/24 Javascript
python实现停车管理系统
2018/11/30 Python
Python操作redis实例小结【String、Hash、List、Set等】
2019/05/16 Python
在python tkinter中Canvas实现进度条显示的方法
2019/06/14 Python
PyQt5通信机制 信号与槽详解
2019/08/07 Python
Python 读取 YUV(NV12) 视频文件实例
2019/12/09 Python
Python类反射机制使用实例解析
2019/12/30 Python
如何通过Python3和ssl实现加密通信功能
2020/05/09 Python
西班牙英格列斯百货官网:El Corte Inglés
2016/09/25 全球购物
英国排名第一的停车场运营商:NCP
2019/08/26 全球购物
千元咖啡店的创业计划书范文
2013/12/29 职场文书
公司门卫管理制度
2014/02/01 职场文书
幼儿园教师演讲稿
2014/05/06 职场文书
商务日语专业的自荐信
2014/05/23 职场文书
法人代表任命书范本
2014/06/05 职场文书
走进敬老院活动总结
2014/07/10 职场文书
党员学习中国梦心得体会
2016/01/05 职场文书
高三英语教学反思
2016/03/03 职场文书
JavaScript 语句之常用 for 循环详解
2021/03/29 Javascript