数据预处理之缺失值处理
来源:互联网 发布:淘宝答题秒杀辅助工具 编辑:程序博客网 时间:2024/04/27 17:48
缺失值产生原因
数据集中部分数据的缺失是一件很头疼的事情,不但增大了数据集的不确定性,也影响了算法的执行。缺失值产生的原因主要有以下几点:
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语言|数据预处理--3缺失值离群点处理
- python 数据预处理(采用拉格朗日插值法处理缺失值)
- python实现数据预处理之填充缺失值
- 机器学习(一):用sklearn进行数据预处理:缺失值处理、数据标准化、归一化
- Python数据预处理:缺失值替换
- 数据预处理中的缺失值问题
- 数据分析预处理的方法——SPSS、Clementine如何处理缺失值、离群值、极值?
- 关于使用Sklearn进行数据预处理 —— 缺失值(Missing Value)处理
- 数据预处理之异常值处理
- 【R】数据缺失值处理
- sklearn 数据缺失值处理
- 数据中的缺失值处理
- 数据清洗---缺失值处理
- A
- HDU-6069 Counting Divisors
- zabbix客户端设置
- JDK切换版本报错问题
- openlayers3 禁止 启用鼠标拖动地图
- 数据预处理之缺失值处理
- LeetCode 85 Maximal Rectangle (Python详解及实现)
- 致那些喜欢站在上帝视角的人
- ssm框架下利用log4j日志打印sql语句
- 设计模式-设计模式概述
- 【马仔创业感悟】什么是初创公司
- hdu 1789 贪心 优先队列
- 权限管理数据库设计思路
- One or more listeners failed to start. Full details will be found in the appropriate container log