一文了解初学者处理缺失数据
您想成为一名数据科学家或者想分析你临床工作中遇到的各种问题数据。也许您已经是一位来自软件工程背景的数据科学家。您知道,数据科学家的工作中有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在处理连续数据和分类数据方面仍然最受欢迎。
参考资料
- 本文主要来自Jun Wu老师的博文资料,这里仅作搬运,供读者学习交流,文章版权归原作者所有(有部分改动)。对于文章的翻译版权归本人所有。
- 原文链接:https://towardsdatascience.com/handling-missing-data-for-a-beginner-6d6f5ea53436