python数据预处理 :数据标准化
何为标准化:
在数据分析之前,我们通常需要先将数据标准化(normalization),利用标准化后的数据进行数据分析。数据标准化也就是统计数据的指数化。数据标准化处理主要包括数据同趋化处理和无量纲化处理两个方面。数据同趋化处理主要解决不同性质数据问题,对不同性质指标直接加总不能正确反映不同作用力的综合结果,须先考虑改变逆指标数据性质,使所有指标对测评方案的作用力同趋化,再加总才能得出正确结果。数据无量纲化处理主要解决数据的可比性。
几种标准化方法:
归一化Max-Min
min-max标准化方法是对原始数据进行线性变换。设minA和maxA分别为属性A的最小值和最大值,将A的一个原始值x通过min-max标准化映射成在区间[0,1]中的值x’,其公式为:
新数据=(原数据-最小值)/(最大值-最小值)
这种方法能使数据归一化到一个区域内,同时不改变原来的数据结构。
实现中心化Z-Score
这种方法基于原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。将A的原始值x使用z-score标准化到x’。
z-score标准化方法适用于属性A的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。
新数据=(原数据-均值)/标准差
这种方法适合大多数类型数据,也是很多工具的默认标准化方法。标准化之后的数据是以0为均值,方差为以的正太分布。但是Z-Score方法是一种中心化方法,会改变原有数据的分布结构,不适合用于对稀疏数据做处理。
很多时候数据集会存在稀疏特征,表现为标准差小,很多元素值为0,最常见的稀疏数据集是用来做协同过滤的数据集,绝大部分数据都是0。对稀疏数据做标准化,不能采用中心化的方式,否则会破坏稀疏数据的结构。
用于稀疏数据的MaxAbs
最大值绝对值标准化(MaxAbs)即根据最大值的绝对值进行标准化,假设原转换的数据为x,新数据为x’,那么x’=x/|max|,其中max为x锁在列的最大值。
该方法的数据区间为[-1, 1],也不破坏原数据结构的特点,因此也可以用于稀疏数据,一些稀疏矩阵。
针对离群点的RobustScaler
有些时候,数据集中存在离群点,用Z-Score进行标准化,但是结果不理想,因为离群点在标准化后丧失了利群特性。RobustScaler针对离群点做标准化处理,该方法对数据中心化的数据的缩放健壮性有更强的参数控制能力。
python实现
import numpy as np
import pandas as pd
from sklearn import preprocessing
import matplotlib.pyplot as plt
from sklearn.datasets import make_moons
import matplotlib.pyplot as plt
%matplotlib inline# 导入数据
data = make_moons(n_samples=200, noise=10)[0]#Z-Score标准化
#建立StandardScaler对象
zscore = preprocessing.StandardScaler()
# 标准化处理
data_zs = zscore.fit_transform(data)#Max-Min标准化
#建立MinMaxScaler对象
minmax = preprocessing.MinMaxScaler()
# 标准化处理
data_minmax = minmax.fit_transform(data)#MaxAbs标准化
#建立MinMaxScaler对象
maxabs = preprocessing.MaxAbsScaler()
# 标准化处理
data_maxabs = maxabs.fit_transform(data)#RobustScaler标准化
#建立RobustScaler对象
robust = preprocessing.RobustScaler()
# 标准化处理
data_rob = robust.fit_transform(data)# 可视化数据展示
# 建立数据集列表
data_list = [data, data_zs, data_minmax, data_maxabs, data_rob]
# 创建颜色列表
color_list = ['blue', 'red', 'green', 'black', 'pink']
# 创建标题样式
title_list = ['source data', 'zscore', 'minmax', 'maxabs', 'robust']# 设置画幅
plt.figure(figsize=(9, 6))
# 循环数据集和索引
for i, dt in enumerate(data_list):# 子网格plt.subplot(2, 3, i+1)# 数据画散点图plt.scatter(dt[:, 0], dt[:, 1], c=color_list[i])# 设置标题plt.title(title_list[i])
# 图片储存
plt.savefig('xx.png')
# 图片展示
plt.show()
参考:
《python数据分析与数据化运营》 宋天龙
python数据预处理 :数据标准化相关推荐
- Scikit-learn 数据预处理之标准化StandardScaler
Scikit-learn 数据预处理之标准化StandardScaler 1 声明 本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理. 2 St ...
- 一、数据预处理——数据归一化 数据标准化
一.数据预处理--数据归一化 & 数据标准化 点击标题即可获取文章相关的源代码文件哟! 1.1 数据无量纲化 在机器学习算法实践中,我们往往有着将不同规格的数据转换到同一规格,或不同分布的数据 ...
- python抽样_python数据预处理 :数据抽样解析
何为数据抽样: 抽样是数据处理的一种基本方法,常常伴随着计算资源不足.获取全部数据困难.时效性要求等情况使用. 抽样方法: 一般有四种方法: 随机抽样 直接从整体数据中等概率抽取n个样本.这种方法优势 ...
- Py之scikit-learn:机器学习sklearn库的简介、六大基本功能介绍(数据预处理/数据降维/模型选择/分类/回归/聚类)、安装、使用方法(实际问题中如何选择最合适的机器学习算法)之详细攻略
Py之scikit-learn:机器学习sklearn库的简介(组件/版本迭代).六大基本功能介绍(数据预处理/数据降维/模型选择/分类/回归/聚类).安装.使用方法(实际问题中如何选择最合适的机器学 ...
- 使用 Python 进行数据预处理的标准化
机器学习和深度学习算法中的缩放方法 标准化和规范化是机器学习和深度学习项目中大量使用的数据预处理技术之一. 这些技术的主要作用 以类似的格式缩放所有数据,使模型的学习过程变得容易. 数据中的奇数值被缩 ...
- 数据预处理|关于标准化和归一化的一切
数据预处理是最令数据科学家头秃的工作 之前在知乎看过一个问题你为什么离开数据科学行业?一位知友est答曰:数据清洗10小时,拟合2分钟,如此重复996. 这条回答下面的评论更是精彩,居然真的会眼瞎.. ...
- 使用sklearn进行数据预处理 —— 归一化/标准化/正则化
本文主要是对照scikit-learn的preprocessing章节结合代码简单的回顾下预处理技术的几种方法,主要包括标准化.数据最大最小缩放处理.正则化.特征二值化和数据缺失值处理.内容比较简单, ...
- Python数据预处理数据的方法总结(使用sklearn-preprocessing)
文章目录 数据预处理思路 数据预处理方法 1 标准化:去均值,方差规模化 2 规模化稀疏数据 3 规模化有异常值的数据 4 正则化Normalization 5 二值化–特征的二值化 6 类别特征编码 ...
- 数据标准化处理方法_机器学习系列-数据预处理-数据标准化(归一化)-理论
在做一个具体的机器学习项目中,拿到收集到的数据后,一般都是需要做数据预处理,而标准化(暂时不考虑标准化和归一化的主要区别)是数据预处理中一个比较重要的环节,那么为什么需要对数据进行标准化处理呢? 数据 ...
- 深度学习数据预处理——批标准化(Batch Normalization)
数据预处理最常见的方法就是中心化和标准化,中心化相当于修正数据的中心位置,实现方法非常简单,就是在每个特征维度上减去对应的均值,最后得到 0 均值的特征.标准化也非常简单,在数据变成 0 均值之后,为 ...
最新文章
- 你能说出多线程中 sleep、yield、join 的用法及 sleep与wait区别吗?
- 性能测试Loadrunner与Mysql
- 关闭切换大小写时桌面提示
- centos6.8 安装软件
- 【git】IDEA下GitLab分支使用测试
- android x5 webview 第一次,android:X5WebView 首次初始化 X5 内核耗时, 会产生卡顿现象的解决办法...
- “一键淘宝”将淘宝网店免费转移到手机客户端教程
- 罗马字符转整数(python)
- matlab数据类型的转换方法
- 国内国外很火爆的代码生成器
- 阿里云cdn以及阿里云负载均衡配置方法
- 短视频热度还能持续多久
- Android开发指南-二维图形
- 啃书:《利用Python进行数据分析》第一章
- 计算思维实践之路(一)
- 数学建模-分类模型(基于logistic回归)
- 【linux】查看服务器的GPU 谁(用户)在使用
- Python下载echo歌曲
- PyQt5 5.10.1 + SIP 4.19.8 + Eric6
- 怎么用软件测试电视,详解如何使用液晶电视测试软件(转载)
热门文章
- 【ai·ps·word字体问题】
- PCB打样步骤有哪些?
- [转载精品] 最全韩国PPT图表集合733张(锐普PPT论坛)
- 论数据库的传统与未来之争之溯源溯本----AWS系列专栏
- 线性代数学习笔记——第四十五讲——线性相关性的判定
- 教学电子白板软件有哪些?分享一个实用工具
- Paint the Grid Reloaded ZOJ - 3781
- 【Keras-ResNet】CIFAR-10
- AngularJS进阶 十九 在AngularJS应用中集成百度地图实现定位功能
- 【天光学术】会计学论文:管理会计在供应链管理中的应用