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

本文总结的是我们大家在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能有一定的帮助,如果有疑问大家可以留言交流。

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

python数据预处理的方法_python中常用的九种数据预处理方法相关推荐

  1. python中常用的九种预处理方法

    本文总结的是我们大家在python中常见的数据预处理方法,以下通过sklearn的preprocessing模块来介绍; 1. 标准化(Standardization or Mean Removal ...

  2. python数据处理常用函数_Python中常用操作字符串的函数与方法总结

    Python中常用操作字符串的函数与方法总结 这篇文章主要介绍了Python中常用操作字符串的函数与方法总结,包括字符串的格式化输出与拼接等基础知识,需要的朋友可以参考下 例如这样一个字符串 Pyth ...

  3. python如何爬虫eps数据_Python爬虫常用的几种数据保存方式

    Python爬虫基本思路 txt: 1, open('文件名','读写模式'), f = open('csdn.txt','w', encodeing='utf-8') 2,f.write() 3,f ...

  4. python实验中遇到的问题及解决方法_Python中遇到的小问题及解决方法汇总

    本文会把学习过程中遇到的一些小问题和解决办法放在这里,以便于大家能够更好地学习python. 一.Python的异常处理 因为想到自己不断尝试写小程序的话会用到抛出异常信息来判断哪里出现了问题: us ...

  5. python下载文件的11种方式_Python 中常见的几种下载文件方法

    下载比较小的文件: # 方法一:使用urllib库 # -*- coding:utf-8 -*- import urllib import time url = 'http://mvideo.spri ...

  6. iOS中常用的四种数据持久化方法

    iOS中的数据持久化方式,基本上有以下四种:属性列表.对象归档.SQLite3和Core Data 1.属性列表 涉及到的主要类:NSUserDefaults,一般 [NSUserDefaults s ...

  7. python函数参数类型检查_Python中实现参数类型检查的简单方法

    Python是一门弱类型语言,很多从C/C++转过来的朋友起初不是很适应.比如,在声明一个函数时,不能指定参数的类型.用C做类比,那就是所有参数都是void*类型!void类型强制转换在C++中被广泛 ...

  8. python排序的方法_python中排序的一种方法

    谢谢你的关心,但我不能接受这个.在 例如,在python3中,我有一个列表.在import os list = [] for carpeta in os.listdir(os.getcwd()): i ...

  9. python 单例模式的实现方法_python中单例模式的四种实现方式

    配置文件settings.py IP='100.0.0.2' PORT=3302 方式一:绑定给类的方法 class Mysql: __instance = None def __init__(sel ...

最新文章

  1. 机器人 瓷砖墙面清洗_瓷砖铺贴注意事项有哪些?
  2. java程序分为哪两大类_JAVA程序基础(第1-2章分类)复习-1
  3. Ubuntu 11.10更新源地址列表更改方法及下载
  4. 页面文件太小无法完成操作_手机上也能轻松完成文件压缩操作,无需软件,可惜知道的人才10%...
  5. 启动延时缩短 50%-80%,函数计算发布镜像加速功能
  6. SAP成本收集器两则
  7. Java内存溢出[转]和mysql配置文件简介[原创]
  8. 流程平台:子表控件(二) - 属性、事件、方法
  9. angularjs中按回车事件_在AutoCAD中巧用空格键或回车键,制图效率高
  10. I,P,B帧和PTS,DTS的关系 转载
  11. php聊天室禁止提交,phpcms v9禁止提交信息到官网方法详解
  12. Netty工作笔记0023---NIO服务器客户端总结
  13. 计算机考研数据结构算法模板
  14. 64位驱动签名工具64Signer
  15. 遗传算法多维matlab,MATLAB遗传算法
  16. 微信小程序-人脸识别
  17. matlab gz,MATLAB之single函数
  18. appium+python闲鱼采购自动化测试实战
  19. 使用C++让鼠标指针抖动
  20. 网上在线培训平台哪家好?

热门文章

  1. 苹果的MACBOOK AIR (MBA)与SONY VAIO PRO 11/13之间
  2. golang 压缩算法 gzip/lz4 对比
  3. Violence detection-Hockey Fight-CNN+LSTM暴力检测CNN+LSTM实例
  4. 【星球知识卡片】图像和视频超分辨都有哪些核心技术,如何对其长期深入学习...
  5. word中字体 html,在Word 2010中设置文本字体
  6. css设置div从下到上显示,科技常识:css制作从下往上逐渐显示的div
  7. loj2038「SHOI2015」超能粒子炮・改(卢卡斯的理解和延伸+数位dp)
  8. 幼儿计算机试题及答案,幼儿园老师计算机操作试题
  9. 详细学习Python的格式化输出
  10. 网络流(多样的建模)