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的Django框架中显示对象子集的方法
Jul 21 Python
Python注释详解
Jun 01 Python
Python基于递归实现电话号码映射功能示例
Apr 13 Python
详谈pandas中agg函数和apply函数的区别
Apr 20 Python
Python实现正弦信号的时域波形和频谱图示例【基于matplotlib】
May 04 Python
深入flask之异步非堵塞实现代码示例
Jul 31 Python
Python合并同一个文件夹下所有PDF文件的方法
Mar 11 Python
浅谈Python反射 & 单例模式
Mar 21 Python
2019 Python最新面试题及答案16道题
Apr 11 Python
什么是python的函数体
Jun 19 Python
Python中bisect的用法及示例详解
Jul 20 Python
详解vscode实现远程linux服务器上Python开发
Nov 10 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
图象函数中的中文显示
2006/10/09 PHP
JS解决ie6下png透明的方法实例
2013/08/02 Javascript
推荐一个封装好的getElementsByClassName方法
2014/12/02 Javascript
jQuery实现鼠标划过添加和删除class的方法
2015/06/26 Javascript
利用JavaScript脚本实现滚屏效果的方法
2015/07/07 Javascript
jQuery实现定位滚动条位置
2016/08/05 Javascript
详解Vue2.0里过滤器容易踩到的坑
2017/06/01 Javascript
微信小程序 地图map实例详解
2017/06/07 Javascript
JavaScript 获取元素在父节点中的下标(推荐)
2017/06/28 Javascript
vue2 router 动态传参,多个参数的实例
2017/11/10 Javascript
React实现全局组件的Toast轻提示效果
2018/09/21 Javascript
Vue实现手机计算器
2020/08/17 Javascript
[05:36]DOTA2 2015国际邀请赛中国区预选赛第四日TOP10
2015/05/29 DOTA
python实现的阳历转阴历(农历)算法
2014/04/25 Python
python实现将excel文件转化成CSV格式
2018/03/22 Python
Python基于多线程实现ping扫描功能示例
2018/07/23 Python
解决py2exe打包后,总是多显示一个DOS黑色窗口的问题
2019/06/21 Python
python文件选择对话框的操作方法
2019/06/27 Python
Python高级特性 切片 迭代解析
2019/08/23 Python
tensorflow实现读取模型中保存的值 tf.train.NewCheckpointReader
2020/02/10 Python
Python django框架开发发布会签到系统(web开发)
2020/02/12 Python
python with语句的原理与用法详解
2020/03/30 Python
Django 实现图片上传和下载功能
2020/12/31 Python
印度最大的酒店品牌网络:OYO Rooms
2016/07/24 全球购物
美国最大的宠物用品零售商:PetSmart
2016/11/14 全球购物
俄罗斯运动、健康和美容产品在线商店:Lactomin.ru
2020/07/23 全球购物
了解AppleShare protocol(AppleShare协议)吗
2015/08/28 面试题
初婚初育证明
2014/01/14 职场文书
《鸟的天堂》教学反思
2014/02/27 职场文书
公司大门门卫岗位职责
2014/06/11 职场文书
经营理念标语
2014/06/21 职场文书
小学生勤俭节约演讲稿
2014/08/28 职场文书
2015年禁毒工作总结
2015/04/30 职场文书
幼儿园班级工作总结2015
2015/05/25 职场文书
离婚律师函范本
2015/05/27 职场文书
图书馆义工感想
2015/08/07 职场文书