• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > python中常用的九种预处理方法分享

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

作者:daisy 字体:[增加 减小] 来源:互联网

daisy 通过本文主要向大家介绍了笨方法学python pdf,笨方法学python,笨方法学python第四版,python 静态方法,python 类方法等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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

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

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

sklearn.preprocessing.scale(X)
</div>

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

scaler = sklearn.preprocessing.StandardScaler().fit(train)
scaler.transform(train)
scaler.transform(test)
</div>

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

2. 最小-最大规范化

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

min_max_scaler = sklearn.preprocessing.MinMaxScaler()
min_max_scaler.fit_transform(X_train)
</div>

3.规范化(Normalization)

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

将每个样本变换成unit norm。

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

得到:

array([[ 0.40, -0.40, 0.81], [ 1, 0, 0], [ 0, 0.70, -0.70]])
</div>

可以发现对于每一个样本都有,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)
</div>

5. 标签二值化(Label binarization)

lb = sklearn.preprocessing.LabelBinarizer()
</div>

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.]])
</div>

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

另一种编码方式

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

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])
</div>

8.特征中含异常值时

sklearn.preprocessing.robust_scale
</div>

9.生成多项式特征

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

poly = sklearn.preprocessing.PolynomialFeatures(2)
poly.fit_transform(X)
</div>

原始特征:

转化后:

总结

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

</div>

您可能想查找下面的文章:

  • python非递归全排列实现方法
  • python中常用的九种预处理方法分享
  • python自动翻译实现方法
  • Python计算已经过去多少个周末的方法
  • Python根据区号生成手机号码的方法
  • Python中实现三目运算的方法
  • Python实现处理管道的方法
  • python获得一个月有多少天的方法
  • python简单实现旋转图片的方法
  • python简单实现旋转图片的方法

相关文章

  • 简单掌握Python中glob模块查找文件路径的用法
  • Python利用Beautiful Soup模块修改内容方法示例
  • python里将list中元素依次向前移动一位
  • Python字符串的encode与decode研究心得乱码问题解决方法
  • 在Django的视图(View)外使用Session的方法
  • Python内置的HTTP协议服务器SimpleHTTPServer使用指南
  • python脚本设置系统时间的两种方法
  • python Django框架实现自定义表单提交
  • django 文件上传功能的相关实例代码(简单易懂)
  • 浅谈Python浅拷贝、深拷贝及引用机制

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Python struct.unpack
    • python将xml xsl文件生成html文件存储示例讲解
    • Python使用scrapy采集数据过程中放回下载过大页面的方法
    • Python实现的异步代理爬虫及代理池
    • python re正则表达式模块(Regular Expression)
    • python模拟登录百度贴吧(百度贴吧登录)实例
    • Python使用xlrd模块操作Excel数据导入的方法
    • Python中使用第三方库xlutils来追加写入Excel文件示例
    • 在Python的Django框架中创建语言文件
    • Python 遍历列表里面序号和值的方法(三种)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有