一文了解初学者处理缺失数据

您想成为一名数据科学家或者想分析你临床工作中遇到的各种问题数据。也许您已经是一位来自软件工程背景的数据科学家。您知道,数据科学家的工作中有80%至90%实际上是数据清理。由于要执行10%的机器学习任务,因此您仍然想完成这项工作。完成数据集分析后,没有什么比您得到的高。您如何找到一种减少数据清理时间的方法?您如何为至关重要的那10%的工作保留精力,以便做得更好? 根据我的经验,对数据清理涉及的流程有扎实的了解非常很重要。了解过程的重要性以及过程中使用的技术将减少执行数据清理任务所需的时间。

优质数据的重要性

如今,我们迷失了“优质数据”的概念,或者说是清洁数据。优质数据定义为准确,完整,一致,及时,唯一和有效的数据。您的机器学习算法依赖于“优质数据”来构建模型,执行和概括性能。有了真实世界的数据,通常会发现数据问题,因为您意识到机器学习算法根本无法工作,或者机器学习算法的性能无法在更大的数据集上推广

在您的数据科学流程的第一步中,几乎不可能找到所有数据问题。您需要为数据清理->数据建模->性能调整的迭代过程做好准备。在此迭代过程中,通过从一开始就掌握正确的基础知识,可以大大缩短时间。

在统计中,您会经常发现将数据分析过程比作约会的人。在头几天,了解您的伴侣(您的数据)至关重要。是否有任何破坏者可能会在以后蔓延?这些破坏者是您首先要抓住的。这些破坏交易者会使您的数据产生偏差。

缺失数据是大难题

缺失数据可以是各式各样的,可能是一个变量,也可能是多个变量。让你很痛苦,很难受

缺失数据分类

丢失数据分为三类,这个分类我们已在多篇文章中提及了。

  • 随机完全丢失(MCAR):缺失值完全随机缺失。数据点丢失的倾向与其假设值以及其他变量的值无关
  • 随机丢失(MAR):由于某些观察到的数据,缺失值丢失。数据丢失的倾向与丢失的数据无关,但与某些观察到的数据有关。
  • 非随机丢失(MNAR):通常,原因是缺失值取决于假设值,或者取决于另一个变量的值。

如何确定数据缺失是否随机呢?

  • 在SPSS中:您可以使用分析->缺失值分析-> EM

  • 在R中,您可以为此使用BaylorEdPsych软件包中的LittleMCAR()函数

    
    LittleMCAR(df)#df是不超过50个变量的数据框
    

解释:如果信号或统计学显着性大于0.05,则没有统计学显着性。这意味着您接受零假设,即“数据完全随机丢失”。MCAR

如果是MAR和MCAR,则删除。否则进行插补。也就是说插补适用于 MNAR

删除的方法

  • 删除包含一个或多个缺失数据的数据的整个记录的方法。
  • 缺点-统计能力取决于大样本量。在较小的数据集中,按列表删除可以减小样本大小。除非您确定记录绝对不是MNAR,否则此技术可能会在数据集中引入偏差.

数据插补的方法

对于分类变量

分类变量-这些变量具有固定数量的可能值。此类变量的示例为:性别=男性,女性,不适用。

如果缺失值不多,则为缺失值创建新级别的分类变量是处理缺失值的好方法

  • 为缺失值创建新的level
  • 用预测模型 logistic regression, KNN 来评估数据
  • 使用多重插补

对于连续型变量

连续变量-这些变量的实数值在一定的间隔内。此类变量的一个示例是付款金额= 0到无穷大。

  • 平均数, 中位数, 众数:该方法涉及用均值,中位数或众数来估算丢失的数据。这种方法的优点是易于实施。但是,有许多缺点。
  • 用预测模型 logistic regression, KNN 来评估数据:由于夸大其预测准确性的事实,容易产生过度拟合的情况。 存在多个或非线性决策边界时,往往表现不佳。线性回归的缺点: -消除了标准错误。 -必须在x和y之间具有线性关系。
  • 使用多重插补

KNN法 (K Nearest Neighbors)

这是一种广泛用于缺失数据插补的模型。之所以广泛使用它,是因为它既可以处理连续数据,也可以处理分类数据。

多重插补

多重插补或MICE算法通过运行多个回归模型来工作,并且根据观察到的(非缺失)值有条件地对每个缺失值进行建模。多重插补的功能是可以插补连续,二进制,无序分类数据和有序分类数据的混合

关于多重插补的执行,我曾在一篇案例演示的文章中演示过。

  • imputing data with mice()
  • building model using with()
  • pooling results for all models using pool()
library(mice)
imp<-mice(diabetes, method="norm.predict", m=1)
data_imp<-complete(imp)
imp<-mice(diabetes, m=5)
fit<-with(data=imp, lm(y~x+z))
combine<-pool(fit)

在R中 MICE包的缺点: 没有其他插补方法的理论依据。 数据复杂性。

处理丢失的数据是数据科学家工作中最大的部分之一。将干净的数据输入到算法中将意味着机器学习算法的性能要好得多。在数据清理过程的开始,区分MCAR,MAR和MNAR是必不可少的。尽管存在多种方法来处理丢失的数据插补,但KNN和MICE在处理连续数据和分类数据方面仍然最受欢迎。

参考资料

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、认识缺失值 在我们的数据分析过程中,经常会碰到缺失值的情况。缺失值产生的原因很多,比如人工输入失误,系统出错,...
    鸣人吃土豆阅读 6,229评论 0 11
  • {因为文章好,所以转载!!}R语言缺失值处理 2016-08-23 05:17砍柴问樵夫 数据缺失有多种原因,而大...
    梦醒启程阅读 19,847评论 2 11
  • 转发自http://crickcollege.com/news/170.html 有趣的小故事 美国作家Shel ...
    iColors阅读 9,368评论 0 6
  • 你有经历过一个人旅行吗? 答案显而易见为什么想去另一所城市? 去认识另一群人,感受他们的生活,还是去逃避心理所想,...
    简二二22阅读 175评论 0 1
  • 舞步轻盈犹如清风徐来水无痕 碎步徐徐移动 举手抬足落落大方 一姿一势皆融情 深情款款旋转接手仰身 乐声起伏似潮水涌...
    夕阳在山阅读 148评论 0 5