数据预处理之缺失值处理
2017-08-09 16:37
453 查看
缺失值产生原因
数据集中部分数据的缺失是一件很头疼的事情,不但增大了数据集的不确定性,也影响了算法的执行。缺失值产生的原因主要有以下几点:1.有些信息暂时无法获取,或获取信息的成本过高
2.信息遗漏,即人为的原因,如收集信息不认真、忘记填写信息等
3.缺失值本身就不存在,比如单身狗的女朋友
缺失值的影响
1.数据集丢失了大量的信息2.数据集表现出的不确定性增大,使得获取数据潜在规律的难度加大
3.包含空值的数据会使数据建模陷入混乱,导致输出不可靠
缺失值的处理方法
1.删除缺失值应用场景:
含有大部分缺失值的属性,直接删除属性
若数据集中只有少量的缺失值,直接删除含有缺失值的行
2.忽略
嗯…忽略不管缺失值也是一种处理方法,例如对于决策树,对一个含有缺失值的特征求熵,只需在求得的熵前乘以(未缺失值的个数/所有样本个数)的系数就行。关于决策树的缺失值处理方法,将在后续博客中书写。
3.插补方法
插补方法就很灵性了,可以取均值/中位数/众数,也可以用固定值插补,还可以用临近值来填补。除了上述方法,还可以用预测方法来填补缺失值,这类方法称为插值法。
插值法有拉格朗日插值法、牛顿插值法,Hermite插值、分段插值、样条插值法等
下面把拉格朗日插值法、牛顿插值法做一个简单的介绍
拉格朗日插值法
拉格朗日插值是一种多项式插值方法,是利用最小次数的多项式来构建一条光滑的曲线,使曲线通过所有的已知点。
拉个朗日插值法是一种多项式的插值方法,它的思想是对于无缺失值的n个样本构建一条光滑的曲线,使曲线通过所有的n个样本点,然后将含有缺失值的样本对应的属性点x带入这条曲线,即可获得缺失值的近似值。
具体流程如下(图片来自《python数据分析与挖掘实战》):
牛顿插值法
牛顿插值法是通过求阶差商来预测缺失值的,步骤如下:
1.对无缺失值的n个样本样本求所有的阶差商公式
2.联立差商公式建立插值多项式f(x)
3.将将含有缺失值的样本对应的属性点x带入插值多项式f(x),获取近似值
具体流程如下(图片来自《python数据分析与挖掘实战》):
参考
《python数据分析与挖掘实战》相关文章推荐
- R语言-数据预处理的一些实用(万能)办法:缺失值、数据重复、共线性等等的处理
- R语言|数据预处理--3缺失值离群点处理
- 数据分析预处理的方法——SPSS、Clementine如何处理缺失值、离群值、极值?
- 数据预处理之缺失值、异常值处理
- pandas处理缺失数据
- Python下的数据处理和机器学习,对数据在线及本地获取、解析、预处理和训练、预测、交叉验证、可视化
- 利用Python进行数据分析(10) pandas基础: 处理缺失数据
- 数据预处理-PDB文件处理代码
- 数据缺失值的4种处理方法
- 【数据挖掘与R语言笔记】预测海藻数量(一)观察数据和处理数据缺失
- R语言处理缺失数据的高级方法
- python实现数据预处理之填充缺失值
- R缺失数据处理
- 关于使用Sklearn进行数据预处理 —— 缺失值(Missing Value)处理
- 数据预处理之异常值处理
- 大数据处理之道(预处理方法)
- [Scikit-Learn] - 数据预处理 - 缺失值(Missing Value)处理
- [置顶] 【数据建模 缺失值处理】缺失值的处理
- ExtJs 处理复合主键 ID不唯一 数据缺失问题
- 数据缺失的处理方法