处理不完整/丢失数据的技术


12

我的问题是针对在分类器/模型训练/拟合期间处理不完整数据的技术。

例如,在一个有几百行的数据集中,每行有五个维度和一个类标签作为最后一项,大多数数据点看起来像这样:

[0.74、0.39、0.14、0.33、0.34、0]

一些可能看起来像这样:

[0.21、0.68,?,0.82、0.58、1]

因此,正是这些数据点类型成为了本课题的重点。

我问这个问题的最初原因是我面前的一个问题。但是,在发布我的问题之前,我认为如果我重新措辞可能会更有用,因此答案对于社区的更大一部分将很有用。

作为一种简单的启发式方法,让我们根据在处理流程中使用数据的时间(在输入到分类器之前或期间)对这些数据处理技术进行划分(即,该技术位于分类器内部)。

我可以为后者想到的最好的例子是决策树中使用的巧妙的“三向分支”技术。

毫无疑问,前者的范围更大。我知道的所有技术都属于以下组之一。

最近,当我查看有关“缺少数据处理”的个人笔记时,我注意到我掌握了许多令人印象深刻的技术。我只是保留这些注释,以使一般人安心,以防万一初级同事问我如何处理丢失的数据。在实际实践中,除了最后一个,我实际上没有使用任何一个。

  1. 归因(imputation):这套技术的广泛适用范围,其共同点(我相信)是,缺失的数据直接由同一数据集提供-替代而不是估计/预测。

  2. 重构:使用自动关联网络(只是输入和输出层大小相等的神经网络,换句话说,输出与输入具有相同的维度)来估计丢失的数据点;这里的想法是在完整的数据上训练该网络,然后为它提供不完整的模式,并从输出节点读取缺少的值。

  3. 引导程序:(鉴于统计分析中的其他用途,因此我不认为没有摘要是必要的)。

  4. 拒绝:从训练集中悄悄删除缺少/损坏元素的数据点,并假装它们不存在。


2
还有一种“简化模型”方法,您可以针对测试过程中遇到的每种缺失值模式训练分类器。IE,要对缺少第i个属性的x进行预测,请从所有训练数据实例中删除第i个属性,然后对其进行训练。jmlr.csail.mit.edu/papers/v8/saar-tsechansky07a.html
Yaroslav

我相信您对插补的定义在现代环境下是不正确的。插补现在涉及根据数据集中的其他变量对丢失的数据进行建模。当前最受欢迎的插补方法是“多重插补”,它为每个缺失值生成多个替代项(基于模型),处理每个替代完成的数据集,然后合并反映结果之间可变性的答案。(在“过去”中,人们做了类似替换类似记录中的值或平均值等操作,但现在不行。)
韦恩(Wayne

@Wayne会不会乐意为我指出一些描述这些modern技术的论文?谢谢
Enzo

R软件包mice在JSS上有一篇不错的入门文章:jstatsoft.org/article/view/v045i03。(即使您不使用R,您也应该会发现介绍很有用。)R包中Amelia包含一个漂亮的小插图。这两个软件包的详细信息不同,但是都使用多个插补。
韦恩

Answers:


3

我将此答案提供给另一个问题,但它可能也适用于此。

“有一个相当新的研究领域叫做Matrix Completion,它可能满足您的要求。在本次讲座中,Emmanuel Candes 给出了非常好的介绍”

本质上,如果您的数据集的排名较低(或大约较低),即您有100行,但是实际矩阵的排名较小,例如10(或只有10个大的奇异值),则可以使用Matrix Completion来填充缺失值数据。


2

我在这里可能有点不合常规,但是到底是什么。请注意:这种思路来自于我自己的分类哲学,即我的目的完全基于纯粹的预测时,而不是解释,概念上的连贯性等方面,所以我会使用它。因此,我在这里所说的与我的观点矛盾的方法是建立回归模型。

不同的分类方法处理缺失数据的能力各不相同,并且取决于其他一些因素^,我可能会尝试#5:使用不会阻塞这些NA的分类器。采取这条路线的部分决定可能还包括考虑将要应用该模型的将来数据中出现相似比例的NA的可能性。如果某些变量的NA可以与课程相提并论,那么就顺理成章了(即,不要建立一个假设模型,该模型假设的信息性数据要比实际拥有的更多,或者会自欺欺人地预测它的预测性。实际上,如果我不确信NA会随机丢失,那么我倾向于重新编码一个新变量(如果新变量是新级别,

如果我有充分的理由使用不能很好地处理丢失数据的分类器,那么我的方法将是#1(多重插补),力图找到在插补数据集上表现相似的分类模型。

^包括:您的预测变量中有多少缺失,是否存在系统性模式(如果存在,则有必要仔细分析并思考分析的含义),以及必须处理多少数据。


1

如果您对负责所讨论数据的数据生成过程有一个合理的预感,则可以使用贝叶斯思想来估计丢失的数据。在贝叶斯方法下,您仅假设丢失的数据也是随机变量,并根据观察到的数据构造丢失数据的后验。然后将使用后验手段代替丢失的数据。

从广义上来说,使用贝叶斯模型可能被认为是推论,但我想提及它,因为它没有出现在您的清单中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.