机器学习算法来处理丢失的数据


25

我正在尝试使用包括实验室值在内的高维度临床数据来开发预测模型。数据空间稀疏,包含5k个样本和200个变量。想法是使用特征选择方法(IG,RF等)对变量进行排名,并使用排名靠前的特征来开发预测模型。

尽管使用朴素贝叶斯方法进行的特征选择进展顺利,但由于变量空间中缺少数据(NA),我现在在实现预测模型时遇到了一个问题。是否有任何机器学习算法可以仔细处理缺少数据的样本?


1
赞成答案的存在对我来说意味着这个问题不太广泛,无法回答。我投票决定不公开。
gung-恢复莫妮卡

Answers:


15

这取决于您使用的模型。如果使用某种生成模型,则有一种原则上的方法可以处理缺失值()。例如,在诸如朴素贝叶斯(Naive Bayes)或高斯过程(Gaussian Processes)之类的模型中,您将整合丢失的变量,然后选择带有剩余变量的最佳选项。

对于区分模型,它是比较复杂的,因为这是不可能的。有很多方法。Gharamani和Jordan提出了一种有原则的方法,其中将缺失值视为隐藏变量,并使用EM算法的一种变体来估计它们。以类似的方式,Smola等人。描述了明确解决该问题的SVM算法的一种变体。

请注意,通常建议用变量的平均值替换缺失值。如第一篇论文所述,这是有问题的。有时,我遇到过对变量进行回归以估计缺失值的论文,但是我不能说这是否适用于您的情况。


2
通常建议用变量的平均值替换缺失值。您能指出来源吗?
谢尔盖·布什曼诺夫

1
@juampa为什么您声称无法在判别模型中整合缺失的变量?我们一直在进行逻辑回归。实际上,可以证明它等于多重插补。
AdamO '18年

1
@SergeyBushmanov在您的困惑中,我与您同在。它不是通常建议,因为它会导致偏见在某些情况下以及在其他情况下anticonservative验证指标使用(单)平均估算。
AdamO '18年


2

尝试使用最近的邻居进行插补以消除丢失的数据。

另外,Caret包具有与多种算法的接口,并且它们都附带了R中的预测方法,可用于预测新数据。还可以使用同一包的k倍交叉验证来评估性能指标。


2

还有一些算法可以在构建预测模型时使用缺失值作为唯一值和不同值,例如分类树和回归树。如xgboost


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.