无论是机器学习、数据挖掘、数据分析,对数据的处理都是至关重要的一步,数据预处理做的好,往往让我们的数据分析有事半功倍的效果,其中正确处理缺失值更是重中之重。

造成数据缺失的原因

  • 信息暂时无法获取。网购退货数量及评价不及时。
  • 获取信息所需要的代价太大
  • 信息统计时被遗漏
  • 系统实时性要求较高

数据确实的类型

  • 完全随机缺失(MCAR)指的是数据的缺失是完全随机的,不依赖于任何不完全变量或完全变量,不影响样本的无偏性。如家庭地址缺失
  • 随机缺失(MAR)指的是数据的缺失不是完全随机的,即该类数据的缺失依赖于其他完全变量。例如财务数据缺失情况与企业的大小有关
  • 非随机缺失(MNAR)指的是数据的缺失与不完全变量自身的取值有关。如高收入人群的不原意提供家庭收入

缺失数据处理方法主要有三大类:

  • 删除元组:将缺失的数据所在的一组数据删除
  • 数据补齐:用一定的值去填充空值
  • 不处理

数据挖掘中常用的有以下几种补齐方法

  1. 人工填写
  2. 特殊值填写(将空值作为一种特殊的属性值来处理,它不同于其他的任何属性值。如所有的空值都用“unknown”填充。一般作为临时填充或中间过程。)
  3. 平均值填写 如果缺失值时数值类型,就根据该属性在其他所有对象取值的平均值来填充该缺失值的属性值 如果数据是非数值类型,就看该属性其他所有对象的众数填充该缺失值。(以最大可能的取值来补充缺失的属性值)
  4. 热卡填充(就近补齐) 对于一个包含空值的对象,热卡填充法在完整数据中找到一个与它最相似的对象,然后用这个相似的对象进行填充。但是难以恒定相似的标准,主观因素较多。
  5. 最近距离邻法(k-means)先根据欧氏距离或相关性分析来确定距离缺失数据样本最近的K个样本,将这K个值加权平均来估计样本的缺失数据。
  6. 使用所有可能的值填充    用空缺属性值的所有可能的属性取值来填充,能够得到较好的补齐效果。但是,当数据量很大或者遗漏的属性值较多时,其计算的代价很大,可能的测试方案很多。如果没有任何可以借助的变量或可参考变量作用很低时可以采用这个方法,方便简单。
  7. 回归  基于完整的数据集,建立回归方程,对于包含空值的对象,将已知属性值代入方程来估计位置属性值,以此估计值来进行填充。当变量不是线性相关时,会导致偏差。常用线性回归。
  8. 期望值最大化方法(EM)EM算法是一种在不完全数据情况下计算极大似然估计或者后验分布的迭代算法。在每一迭代循环过程中交替执行两个步骤:E步(Excepctaion step,期望步),在给定完全数据和前一次迭代所得到的参数估计的情况下计算完全数据对应的对数似然函数的条件期望;M步(Maximzation step,极大化步),用极大化对数似然函数以确定参数的值,并用于下步的迭代。算法在E步和M步之间不断迭代直至收敛,即两次迭代之间的参数变化小于一个预先给定的阈值时结束。该方法可能会陷入局部极值,收敛速度也不是很快,并且计算很复杂。

就几种基于统计的方法而言,删除元组法和平均值法差于热卡填充法、期望值最大化方法和多重填充法;回归是比较好的一种方法,但仍比不上hot deck和EM。

不处理:不处理缺失值,直接在包含空值的数据上进行数据挖掘方法包括贝叶斯网络和人工神经网络等

数据清洗中的缺失值处理相关推荐

  1. 数据探索(数据清洗)①—数据质量分析(对数据中的缺失值、异常值和一致性进行分析)

    Python介绍. Unix & Linux & Window & Mac 平台安装更新 Python3 及VSCode下Python环境配置配置 python基础知识及数据分 ...

  2. python异常值删除_python数据清洗中,是如何识别和处理异常值的?

    异常值处理是pythonshujuqingxi/' style='color:#000;font-size:14px;'>python数据清洗中重要的步骤,虽然异常值出现频率比较低,但是如果置之 ...

  3. pandas使用fillna函数将dataframe中的缺失值按照列均值进行填充(fill missing values with the mean of the column)

    pandas使用fillna函数将dataframe中的缺失值按照列均值进行填充(fill missing values with the mean of the column in datafram ...

  4. pandas使用notnull函数将dataframe中所有缺失值映射为False,非缺失值映射为True(map missing vlaues into False others into True

    pandas使用notnull函数将dataframe中所有缺失值映射为False,非缺失值映射为True(map missing vlaues into False others into True ...

  5. pandas使用isna函数和any函数计算返回dataframe中包含缺失值的数据行(rows with missing values in dataframe)

    pandas使用isna函数和any函数计算返回dataframe中包含缺失值的数据行(rows with missing values in dataframe) 目录

  6. R语言自定义函数计算dataframe每列中的缺失值NA的个数、缺失值问题及其填充示例

    R语言自定义函数计算dataframe每列中的缺失值NA的个数.缺失值问题及其填充示例 目录

  7. R语言dataframe数据列中的缺失值NA的个数统计实战:特定数据列的NA值统计、所有特征的NA值统计

    R语言dataframe数据列中的缺失值NA的个数统计实战:特定数据列的NA值统计.所有特征的NA值统计 目录

  8. 数据预处理常用技巧 | 数据分析中如何处理缺失值?(文末福利)

    无论是数据分析.数据挖掘,还是机器学习,都离不开数据预处理这一重要步骤.没有高质量的数据,就没有高质量的分析结果.而数据不完整,也就是数据中包含缺失值,正是数据分析工作者最常见的问题之一.本文我们就来 ...

  9. ML之FE:特征工程中数据缺失值填充的简介、方法、全部代码实现之详细攻略

    ML之FE:特征工程中数据缺失值填充的简介.方法.全部代码实现之详细攻略 目录 特征工程中数据缺失值填充的简介.方法.经典案例

  10. python 数据框缺失值_Python:处理数据框中的缺失值

    python 数据框缺失值 介绍 (Introduction) In the last article we went through on how to find the missing value ...

最新文章

  1. 人脸识别引爆下一代生物支付四军之战
  2. my friends
  3. 常见的物联网通信协议
  4. 从ffmpeg源代码分析如何解决ffmpeg编码的延迟问题(如何解决编码 0 延时)
  5. Java软件项目开发命名规范_命名规则
  6. 利用Group Conv在单个CNN中实现集成学习
  7. 调取方法_最新微信调取转账证据新方法公布
  8. 红帽--RHCE你需要知道的些事情
  9. 最小二乘法的思路及推导过程
  10. kafka web页面监控KafkaOffsetMonitor
  11. Docker神器之迅雷远程下载(群辉 Linux)
  12. java将图片的url转换成File,File转换成二进制流byte
  13. Tushare介绍和入门级实践(1)——使用tushare接口获取沪深300成分股交易日涨跌数据
  14. 分析 crash 报告的方法
  15. sqlalchemy.exc.ArgumentError: relationship 'tags' expects a class or a mapper argument (received:
  16. 华为高性能服务器tecal rh5885 v3 中标,关键业务平台 华为RH5885 V3服务器评测
  17. 接口调用-【4】讯飞离线语音合成Windows/Linux
  18. python数据变量概览 查看 连续性/离散型
  19. 【English】十月英语总结
  20. 揭开网站美丽面纱!快照(百度快照,谷歌快照)。

热门文章

  1. win7黑屏,提示副本不是正版的激活解决办法
  2. 阿里大厂面试:2亿条数据需要缓存,如何设计这个存储方案?
  3. Jupyter处理大量数据导致内存溢出 网页崩溃的解决办法
  4. linux root邮箱地址,Linux中自动送给root的mail可以发给互联网上的emai? 爱问知识人...
  5. 三极管与稳压管恒流电路
  6. 树莓派系列二:openCV之头像添加国旗
  7. UI自动化测试神器->Cypress
  8. Lee滤波和Refine-Lee滤波
  9. go mod tidy报错verifying module: invalid GOSUMDB: malformed verifier id
  10. 读《许三观卖血记》----余华