数据预处理之离散化

按照我们对于变量的分类:分为数值变量和分类变量,数值变量可以分为连续型和离散型,分类变量又有有序的和无序的。下面我将介绍一些对于这些变量进行离散化处理。

无序分类变量的离散化方法:

比如在泰坦尼克号当中,有一个变量叫做乘客登陆的港口,取值为(C, Q, S)代表三个地方。这是一个典型的无序分类变量,我们在进行数据预处理的时候应该如何进行。 一种很容易想到的方法就是把每个值映射为一个数字,比如C=0, Q=1, S=2。 但是这样容易产生一个问题:我们实际上是把它们当做了有序的数字来进行看待了,2比1大,这就存在了顺序关系。但是我们的数据本来并不存在这样的关系。

为了解决上面的问题,我们使用独热编码(One-Hot Encoding)对无序的分类变量进行处理。对于取值有m种情况的变量,我们用m维来表示。比如上面的变量可以取值100, 010,001, 仅当样本取值为第i种情况的时候,在第i维上面编码为1,其余维均编码为0。独热编码形成的变量也叫做虚变量或者哑变量(dummpy variable)。

sklearn 中有提供的OneHotEncoder的方法

from sklearn.preprocessing import  OneHotEncoder

enc = OneHotEncoder()

enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]])

print(enc.n_values_)

print(enc.transform([[0, 1, 1]]).toarray())
‘‘‘
数据为这样的情况
0 0 3
1 1 0
0 2 1
1 0 2
一共有三个特征,第一个特征有两个取值,第二个特征有三个取值,第四个特征有四个取值
所以n_values_输出为[2,3,4]
当我们对[0, 1, 1]进行编码的时候为10 010 0100 

‘‘‘

输出结果如下:

[2 3 4]
[[1. 0. 0. 1. 0. 0. 1. 0. 0.]]

另外,panda当中也有一个get_dummies方法,可以进行独热编码

import pandas as pd
import seaborn as sns

#我们从seaborn当中调入 titanic的数据。
titanic = sns.load_dataset("titanic")

print(titanic[‘embarked‘].head())

embarked_dummpy = pd.get_dummies(titanic[‘embarked‘])

print(embarked_dummpy.head())

#我们可以使用 pd.concat方法,把得到的dummpy数据和元数据连接在一起
new_data = pd.concat([titanic, embarked_dummpy], axis=1)

输出结果如下

0    S
1    C
2    S
3    S
4    S
Name: embarked, dtype: object
   C  Q  S
0  0  0  1
1  1  0  0
2  0  0  1
3  0  0  1
4  0  0  1

有序分类变量的离散化

有序分类变量可以直接利用划分后的数值。如分类变量 [贫穷,温饱,小康,富有],直接可以将他们转换为[0,1,2,3]就可以了。

连续变量的离散化

对于连续变量,我们直接把他们扔进我们的模型当中,为什么还有进行离散化?

离散化有很多的好处,比如能够使我们的模型更加的简单,因为相对于连续类型数据,离散类型数据的可能性更少。对于某些模型比如计算广告中常用的逻辑回归,是非常需要我们输入离散化的特征的。

连续特征离散化的方法可以分为有监督的和无监督的。前者主要是利用了数据集中的类信息。

无监督的方法分为:

等宽划分:按照相同宽度将数据分成几等份。缺点是受到异常值的影响比较大。 pandas.cut方法可以进行等宽划分。

等频划分:将数据分成几等份,每等份数据里面的个数是一样的。pandas.qcut方法可以进行等频划分。

聚类划分:使用聚类算法将数据聚成几类,每一个类为一个划分。

有监督学习方法:

1R方法

基于信息熵的方法

基于卡方的方法

参考

One-Hot Encoding与类别特征处理

特征工程七种常用方法

连续特征离散化方法综述

原文地址:https://www.cnblogs.com/jiaxin359/p/8574510.html

时间: 2024-11-13 17:46:14

数据预处理之离散化的相关文章

数据预处理(完整步骤)

原文:http://dataunion.org/5009.html 一:为什么要预处理数据?(1)现实世界的数据是肮脏的(不完整,含噪声,不一致)(2)没有高质量的数据,就没有高质量的挖掘结果(高质量的决策必须依赖于高质量的数据:数据仓库需要对高质量的数据进行一致地集成)(3)原始数据中存在的问题:不一致 —— 数据内含出现不一致情况重复不完整 —— 感兴趣的属性没有含噪声 —— 数据中存在着错误.或异常(偏离期望值)的数据高维度二:数据预处理的方法(1)数据清洗 —— 去噪声和无关数据(2)数

《数据挖掘概念与技术》--第三章 数据预处理

一.数据预处理 1.数据如果能够满足其应用的要求,那么他是高质量的. 数据质量涉及许多因素:准确性.完整性.一致性.时效性.可信性.可解释性. 2.数据预处理的主要任务:数据清洗.数据集成.数据规约.数据变换. 二.数据清理:试图填充缺失值,光滑噪声.识别利群点.纠正数据中的不一致. 1.缺失值的处理: 1)忽略元组:缺少类标号时通常这么做.但是忽略的元组其他属性也不能用,即便是有用的. 2)人工填写:该方法很费事费时,数据集很大.缺失值很多时可能行不通. 3)使用一个全局常量填充缺失值:将缺失

WEKA中的数据预处理

数据预处理包括数据的缺失值处理.标准化.规范化和离散化处理. 数据的缺失值处理:weka.filters.unsupervised.attribute.ReplaceMissingValues. 对于数值属性,用平均值代替缺失值,对于nominal属性,用它的mode(出现最多的值)来代替缺失值. 标准化(standardize):类weka.filters.unsupervised.attribute.Standardize.标准化给定数据集中所有数值属性的值到一个0均值和单位方差的正态分布.

数据预处理技术

数据预处理技术数据清理:空缺值处理.格式标准化.异常数据清除.错误纠正.重复数据的清除数据集成:将多个数据源中的数据结合起来并统一存储,建立数据仓库的过程实际上就是数据集成.数据变换:平滑.聚集.规范化.最小 最大规范化等数据归约:维归(删除不相关的属性(维)).数据压缩(PCA,LDA,SVD.小波变换).数值归约(回归和对数线形模型.线形回归.对数线形模型.直方图)数据离散化和概念分层 1.数据清理:格式标准化.异常数据清除.错误纠正.重复数据的清除通过填写空缺值,平滑噪声数据,识别删除孤立

【读书笔记-数据挖掘概念与技术】数据预处理

数据预处理的目的:提高数据质量,数据质量的三要素:准确性.完整性.一致性. 数据预处理的任务: 数据清理 数据集成 数据规约 数据变换 数据清理--填充缺失的值.光滑噪声.识别离群点.纠正数据中的不一致 缺失值: 忽略元组 人工填写缺失值 使用一个全局常量 使用属性的中心度量 使用与给定元组属同一类的所有样本的属性均值或中位数 使用最可能的值(最流行) 噪声数据 分箱 回归 离群点分析 数据集成--合并来自多个数据存储的数据 实体识别问题 冗余和相关分析 元组重复 数据值冲突的监测与处理 数据规

数据预处理与特征选择

数据预处理和特征选择是数据挖掘与机器学习中关注的重要问题,坊间常说:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已.特征工程就是将原始数据转化为有用的特征,更好的表示预测模型处理的实际问题,提升对于未知数据的预测准确性.下图给出了特征工程包含的内容: 本文数据预处理与特征选择的代码均采用sklearn所提供的方法,并使用sklearn中的IRIS(鸢尾花)数据集来对特征处理功能进行说明,IRIS数据集由Fisher在1936年整理,包含4个特征:Sepal.Length(花萼长

R语言--数据预处理

一.日期时间.字符串的处理 日期 Date: 日期类,年与日 POSIXct: 日期时间类,精确到秒,用数字表示 POSIXlt: 日期时间类,精确到秒,用列表表示 Sys.date(), date(), difftime(), ISOdate(), ISOdatetime() #得到当前日期时间 (d1=Sys.Date()) #日期 年月日 (d3=Sys.time()) #时间 年月日时分秒 通过format输出指定格式的时间 (d2=date()) #日期和时间 年月日时分秒 "Fri

数据挖掘笔记(三)—数据预处理

1.原始数据存在的几个问题:不一致:重复:含噪声:维度高. 2.数据预处理包含数据清洗.数据集成.数据变换和数据归约几种方法. 3.数据挖掘中使用的数据的原则 应该是从原始数据中选取合适的属性作为数据挖掘属性,这个选取过程应参考的原则是:尽可能赋予属性名和属性值明确的含义:统一多数据源的属性值编码:去除惟一属性:去除重复性:去除可忽略字段:合理选择关联字段. 4.处理空缺值的方法:忽略该记录:去掉属性:手工填写空缺值:使用默认值:使用属性平均值:使用同类样本平均值:预测最可能的值. 5.噪声数据

文本内容分析和智能反馈(2)- 数据预处理和按纬度统计

书接上文,考虑4个核心功能的实现,先考虑:数据预处理和按纬度统计. 1.数据预处理 1.1.基本原则 首先,考虑数据的格式. 业务数据是保存在关系型数据库中的.数据分析的部分,我们将使用Weka,虽然Weka习惯ARFF格式,为了实现数据分析和提取的自动化,我们将通过Weka的JDBC接口为其提供数据.这样,可以使用ETL工具或者通过程序代码执行SQL实现数据提取和格式转换. 在开发阶段,我们基本上可以将数据提取和转换逻辑固定下来,没有必要采用专门的ETL工具. 其次,考虑数据转换的要求. 我们