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 09 Python
Python批量创建迅雷任务及创建多个文件
Feb 13 Python
Python 快速实现CLI 应用程序的脚手架
Dec 05 Python
详细解读tornado协程(coroutine)原理
Jan 15 Python
python3 读写文件换行符的方法
Apr 09 Python
python爬虫_实现校园网自动重连脚本的教程
Apr 22 Python
python爬取哈尔滨天气信息
Jul 14 Python
Sanic框架蓝图用法实例分析
Jul 17 Python
python 切换root 执行命令的方法
Jan 19 Python
详解小白之KMP算法及python实现
Apr 04 Python
python小程序之4名牌手洗牌发牌问题解析
May 15 Python
python b站视频下载的五种版本
May 27 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性能优化的介绍
2013/06/20 PHP
php 批量替换程序的具体实现代码
2013/10/04 PHP
PHP实用函数分享之去除多余的0
2015/02/06 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
2017/12/21 PHP
浅析PHP数据导出知识点
2018/02/17 PHP
Laravel开启跨域请求的方法
2019/10/13 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
2021/02/22 PHP
IE本地存储userdata的一个bug说明
2010/07/01 Javascript
jQuery实现的Email中的收件人效果(按del键删除)
2011/03/20 Javascript
jQuery ui实现动感的圆角渐变网站导航菜单效果代码
2015/08/26 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
2016/09/19 Javascript
JS访问DOM节点方法详解
2016/11/29 Javascript
RequireJS 依赖关系的实例(推荐)
2017/01/21 Javascript
基于javascript的异步编程实例详解
2017/04/10 Javascript
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
2017/08/23 jQuery
JS基于贪心算法解决背包问题示例
2017/11/27 Javascript
PYTHON正则表达式 re模块使用说明
2011/05/19 Python
python 捕获shell脚本的输出结果实例
2017/01/04 Python
python中pylint使用方法(pylint代码检查)
2018/04/06 Python
用Python下载一个网页保存为本地的HTML文件实例
2018/05/21 Python
利用Python进行图像的加法,图像混合(附代码)
2019/07/14 Python
Python高级特性 切片 迭代解析
2019/08/23 Python
Python数据持久化存储实现方法分析
2019/12/21 Python
Python爬虫库BeautifulSoup的介绍与简单使用实例
2020/01/25 Python
Python各种扩展名区别点整理
2020/02/27 Python
Java Spring项目国际化(i18n)详细方法与实例
2020/03/20 Python
PyQt5.6+pycharm配置以及pyinstaller生成exe(小白教程)
2020/06/02 Python
CSS3不透明度实例讲解
2016/04/26 HTML / CSS
美国第一香水网站:Perfume.com
2017/01/23 全球购物
Ajax主要包含了哪些技术
2014/06/12 面试题
感恩节活动方案
2014/01/27 职场文书
工厂保安员岗位职责
2014/01/31 职场文书
人事助理自荐信
2014/02/02 职场文书
公司门卫的岗位职责
2014/02/19 职场文书
建设单位项目负责人任命书
2014/06/06 职场文书
幼师辞职信怎么写
2015/02/27 职场文书