sklearn中常用的数据预处理方法

常见的数据预处理方法,以下通过sklearn的preprocessing模块来介绍;

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

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

1
sklearn.preprocessing.scale(X)

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

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

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

2. 最小-最大规范化

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

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

3.规范化(Normalization)

规范化是将不同变化范围的值映射到相同的固定范围,常见的是[0,1],此时也称为归一化。《机器学习》周志华

将每个样本变换成unit norm。

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

得到:

1
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

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

5. 标签二值化(Label binarization)

1
lb = sklearn.preprocessing.LabelBinarizer()

6. 类别特征编码

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

1
2
3
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,用两位去编码。第二维用三位,第三维用四位。

7.标签编码(Label encoding)

1
2
3
4
5
6
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.特征中含异常值时

1
sklearn.preprocessing.robust_scale

9.生成多项式特征

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

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

原始特征:

转化后:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/456944.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

儿童学计算机编程好处,儿童学习编程有什么好处

原标题:儿童学习编程有什么好处前几年中国家长可能对少儿编程教育感到陌生。但随着这两年美国STEM教育在中国的流行,以及今年国务院普及中小学阶段人工智能、编程教育规划的发布,现在国内也渐渐掀起少儿学习编程的风潮。孩子学电脑编程&#…

python中tkinter的使用-中

00Listbox控件 import tkinterwin tkinter.Tk() win.title("Liuwang") win.geometry("400x40020020") 列表框控件,可以包含一个或者多个文本框 作用:在listbox控件的小窗口显示一个字符串 #1、创建一个listbox,添加几个元素&#…

SharePoint Server 2016 PWA(Project web app) 被变为只读模式

今天有同事反应了一个状况,我们SharePoint 2016里面集成的Project Web App(以下简称PWA)变成 read-only 只读模式了!今天就给大家分享一下我的排查过程,供大家参考。 整个过程我一共使用了五种办法,结果最后一种才生效&#xff0c…

HDU 5741 Helter Skelter(构造法)

【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid5741 【题目大意】 一个01相间的串,以0开头,给出的序列每个数字表示连续的0的个数或者1的个数,现在有m个询问,求0的个数为a且1的个数为b的串是否存在。 【题解】 我们发现…

集成学习之参数调整策略

1 Random Forest和Gradient Tree Boosting参数详解 在sklearn.ensemble库中,我们可以找到Random Forest分类和回归的实现:RandomForestClassifier和RandomForestRegression,Gradient Tree Boosting分类和回归的实现:GradientBoost…

python中tkinter的使用-下

00表格数据 import tkinter from tkinter import ttkwin tkinter.Tk() win.title("Liuwang") win.geometry("400x40020020")#表格 tree ttk.Treeview(win) tree.pack() #列 tree["columns"] ("姓名","年龄","身高&…

计算机科学和建筑设计结合,智能化建筑中计算机科学与技术的应用

4494 科技创新 建筑工程技术与设计2018年5月上【摘要】随着我国经济的发展,计算机科学技术已经逐渐应用到各个领域。将计算机科学与建筑相结合,为建筑业的发展提供了契机。本文介绍了计算机科学技术在智能化建筑中的应用,以期其为加快我国智能…

符号

符号:; 多个命令的分隔符/ 根或者路径的分隔符> 或1>标准输出重定向(数据流朝着箭头的方向流动),覆盖原来的文件>>或1>>追加重定向(数据流朝着箭头的方向流动),再原来的文件…

Random Forest算法中的参数详解

本篇不是介绍RF的,关于RF网上有很多通俗易懂的解释 西瓜书与统计学习方法等很多教材中的解释也都足够 本篇仅针对如何使用sklearn中的RandomForestClassifier作记录 一、代码怎么写 [python] view plaincopy print?class sklearn.ensemble.RandomForestClassifier(…

python中自动化办公 【笔记】

00读取csv文件 import csv def readCsv(path):infolist []with open (path,"r") as f:allFileInfo csv.reader(f)print(allFileInfo)for row in allFileInfo:infolist.append(row)return infolistpath r"D:\xiazaipan\第1章 Python语言基础\15、自动化办公与…

Python爬虫:一些常用的爬虫技巧总结

1、基本抓取网页 get方法 import urllib2 url "http://www.baidu.com" respons urllib2.urlopen(url) print response.read() post方法 import urllib import urllib2url "http://abcde.com" form {name:abc,password:1234} form_data urllib.urlenco…

微型计算机选用要点,微型计算机原理以及应用考试_new要点分析.doc

微型计算机原理以及应用第一章:1.微机的主要的特点是:(1)体积小、重量轻;(2)价格低廉;(3)可靠性高、结构灵活(4)应用面广2.微型机的分类:按微处理器规模分类:单片机 、个人计算机、 …

到底什么是API经济

编者按:这是一篇两年前的文章,作者为原CA TECH的中国区技术总监。他在文章中阐述的问题,今天读来依旧让人振聋发聩。但遗憾的是,国人在API成为一种服务的概念上似乎还停留在遥远的PC时代,说白了还都只是一些低端的数据…

解决Linux下vi或vim操作Found a swap file by the name

在linux下用vi或vim打开 文件时 E325: ATTENTION Found a swap file by the name ".1.py.swp" owned by: liu dated: Sat Apr 20 17:37:19 2019 file name: ~liu/1.py modified: YES user name: liu host name: localhos…

给未来的自己一封信计算机,给未来的自己的一封信范文(精选5篇)

给未来的自己的一封信范文(精选5篇)在日常生活或是工作学习中,大家总免不了要接触或使用书信吧,书信一般包括称呼、问候语、正文、祝语、署名、日期六个部分。你知道书信怎样写才规范吗?下面是小编为大家收集的给未来的自己的一封信范文(精选…

matlab神经网络函数

1.设计函数 solvein 设计线性网络; solverb 设计径向基网络; solverbe 设计精确的径向基网络; solvehop 设计Hopfield网络。 2.传递函数 hardlim 硬限幅传递函数; hardl…

GBDT算法简介

在网上看到一篇GBDT介绍非常好的文章,GBDT大概是非常好用又非常好用的算法之一了吧(哈哈 两个好的意思不一样) GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一种迭代的决策树算法,该算…

DevExpress Chart空间Y轴归一化(线性归一化函数)

数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较…

Linux samba的配置和使用

推荐局域网内使用 不推荐远程服务器 一、安装Samba服务 yum -y install samba # 查看yum源中Samba版本 yum list | grep samba # 查看samba的安装情况 rpm -qa | grep samba Samba服务器安装完之后, 会生成配置文件目录/etc/samba, /etc/samba/smb.conf是samba的核心配置文件.…

23期PHP基础班第四天

转载于:https://www.cnblogs.com/lihang666/p/6078982.html