python中常用的九种预处理方法分享


Posted in Python onSeptember 11, 2016

本文总结的是我们大家在python中常见的数据预处理方法,以下通过sklearn的preprocessing模块来介绍;

1. 标准化(Standardization or Mean Removal and Variance Scaling)

变换后各维特征有0均值,单位方差。也叫z-score规范化(零均值规范化)。计算方式是将特征值减去均值,除以标准差。

sklearn.preprocessing.scale(X)

一般会把train和test集放在一起做标准化,或者在train集上做标准化后,用同样的标准化器去标准化test集,此时可以用scaler

scaler = sklearn.preprocessing.StandardScaler().fit(train)
scaler.transform(train)
scaler.transform(test)

实际应用中,需要做特征标准化的常见情景:SVM

2. 最小-最大规范化

最小-最大规范化对原始数据进行线性变换,变换到[0,1]区间(也可以是其他固定最小最大值的区间)

min_max_scaler = sklearn.preprocessing.MinMaxScaler()
min_max_scaler.fit_transform(X_train)

3.规范化(Normalization)

规范化是将不同变化范围的值映射到相同的固定范围,常见的是[0,1],此时也称为归一化。

将每个样本变换成unit norm。

X = [[ 1, -1, 2],[ 2, 0, 0], [ 0, 1, -1]]
sklearn.preprocessing.normalize(X, norm='l2')

得到:

array([[ 0.40, -0.40, 0.81], [ 1, 0, 0], [ 0, 0.70, -0.70]])

可以发现对于每一个样本都有,0.4^2+0.4^2+0.81^2=1,这就是L2 norm,变换后每个样本的各维特征的平方和为1。类似地,L1 norm则是变换后每个样本的各维特征的绝对值和为1。还有max norm,则是将每个样本的各维特征除以该样本各维特征的最大值。
在度量样本之间相似性时,如果使用的是二次型kernel,需要做Normalization

4. 特征二值化(Binarization)

给定阈值,将特征转换为0/1

binarizer = sklearn.preprocessing.Binarizer(threshold=1.1)
binarizer.transform(X)

5. 标签二值化(Label binarization)

lb = sklearn.preprocessing.LabelBinarizer()

6. 类别特征编码

有时候特征是类别型的,而一些算法的输入必须是数值型,此时需要对其编码。

enc = preprocessing.OneHotEncoder()
enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]])
enc.transform([[0, 1, 3]]).toarray() #array([[ 1., 0., 0., 1., 0., 0., 0., 0., 1.]])

上面这个例子,第一维特征有两种值0和1,用两位去编码。第二维用三位,第三维用四位。

另一种编码方式

newdf=pd.get_dummies(df,columns=["gender","title"],dummy_na=True)

7.标签编码(Label encoding)

le = sklearn.preprocessing.LabelEncoder() 
le.fit([1, 2, 2, 6]) 
le.transform([1, 1, 2, 6]) #array([0, 0, 1, 2]) 
#非数值型转化为数值型
le.fit(["paris", "paris", "tokyo", "amsterdam"])
le.transform(["tokyo", "tokyo", "paris"]) #array([2, 2, 1])

8.特征中含异常值时

sklearn.preprocessing.robust_scale

9.生成多项式特征

这个其实涉及到特征工程了,多项式特征/交叉特征。

poly = sklearn.preprocessing.PolynomialFeatures(2)
poly.fit_transform(X)

原始特征:python中常用的九种预处理方法分享

转化后:python中常用的九种预处理方法分享

总结

以上就是为大家总结的python中常用的九种预处理方法分享,希望这篇文章对大家学习或者使用python能有一定的帮助,如果有疑问大家可以留言交流。

Python 相关文章推荐
Python通过OpenCV的findContours获取轮廓并切割实例
Jan 05 Python
Redis使用watch完成秒杀抢购功能的代码
May 07 Python
Python continue继续循环用法总结
Jun 10 Python
python实现搜索文本文件内容脚本
Jun 22 Python
Python交互环境下实现输入代码
Jun 22 Python
python实现字符串加密 生成唯一固定长度字符串
Mar 22 Python
Python之——生成动态路由轨迹图的实例
Nov 22 Python
tensorflow保持每次训练结果一致的简单实现
Feb 17 Python
Python GUI库PyQt5样式QSS子控件介绍
Feb 25 Python
python GUI库图形界面开发之PyQt5多行文本框控件QTextEdit详细使用方法实例
Feb 28 Python
python 在右键菜单中加入复制目标文件的有效存放路径(单斜杠或者双反斜杠)
Apr 08 Python
Pytorch 卷积中的 Input Shape用法
Jun 29 Python
python 打印出所有的对象/模块的属性(实例代码)
Sep 11 #Python
python 打印对象的所有属性值的方法
Sep 11 #Python
全面了解python中的类,对象,方法,属性
Sep 11 #Python
Python读取图片属性信息的实现方法
Sep 11 #Python
python开发环境PyScripter中文乱码问题解决方案
Sep 11 #Python
基于asyncio 异步协程框架实现收集B站直播弹幕
Sep 11 #Python
asyncio 的 coroutine对象 与 Future对象使用指南
Sep 11 #Python
You might like
收音机频率指针指示不准确和灵敏度低问题
2021/03/02 无线电
从MySQL数据库表中取出随机数据的代码
2007/09/05 PHP
php_screw安装使用教程(另一个PHP代码加密实现)
2014/05/29 PHP
php获取json数据所有的节点路径
2015/05/17 PHP
PHP实现基于3DES算法加密解密字符串示例
2018/08/24 PHP
PHP基于cookie实现统计在线人数功能示例
2019/01/16 PHP
WebGame《逆转裁判》完整版 代码下载(1月24日更新)
2007/01/29 Javascript
jquery form 加载数据示例
2014/04/21 Javascript
JS实现5秒钟自动封锁div层的方法
2015/02/20 Javascript
javascript之Array 数组对象详解
2016/06/07 Javascript
Bootstrap表单布局
2016/07/19 Javascript
JS正则表达式之非捕获分组用法实例分析
2016/12/28 Javascript
详解Nodejs mongoose
2018/06/10 NodeJs
详解vue移动端项目的适配(以mint-ui为例)
2018/08/17 Javascript
JavaScript This指向问题详解
2019/11/25 Javascript
理解Proxy及使用Proxy实现vue数据双向绑定操作
2020/07/18 Javascript
[16:04]DOTA2海涛带你玩炸弹 9月5日更新内容详解
2014/09/05 DOTA
[36:29]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs TNC
2018/04/02 DOTA
浅析Python中的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
Python的requests网络编程包使用教程
2016/07/11 Python
mac下pycharm设置python版本的图文教程
2018/06/13 Python
python实现简单的文字识别
2018/11/27 Python
python实现倒计时小工具
2019/07/29 Python
css3 中translate和transition的使用方法
2020/03/26 HTML / CSS
国际领先的学术出版商:Springer
2017/01/11 全球购物
Champion官网:美国冠军运动服装
2017/01/25 全球购物
King Apparel官网:英国街头服饰品牌
2019/09/05 全球购物
荷兰最大的鞋子、服装和运动折扣店:Bristol
2021/01/07 全球购物
初婚未育未抱养证明
2014/01/12 职场文书
《秋姑娘的信》教学反思
2014/02/28 职场文书
预备党员承诺书
2014/03/25 职场文书
安全生产先进个人事迹材料
2014/12/30 职场文书
2015年公路养护工作总结
2015/05/13 职场文书
承诺书怎么写 ?
2019/04/16 职场文书
threejs太阳光与阴影效果实例代码
2022/04/05 Javascript
Nginx开源可视化配置工具NginxConfig使用教程
2022/06/21 Servers