我的问题是针对在分类器/模型训练/拟合期间处理不完整数据的技术。
例如,在一个有几百行的数据集中,每一行有五个维度和一个类标签作为最后一项,大多数数据点看起来像这样:
[0.74, 0.39, 0.14, 0.33, 0.34, 0]
一些可能看起来像这样:
[0.21, 0.68, ?, 0.82, 0.58, 1]
因此,这些类型的数据点是本问题的重点。
我问这个问题的最初原因是直接摆在我面前的问题;但是,在发布我的问题之前,我认为如果我重新措辞它可能会更有用,这样答案将对社区的大部分人有用。
作为一个简单的启发式方法,让我们根据在处理流程中使用它们的时间来划分这些数据处理技术——在输入到分类器之前或期间(即,该技术在分类器内部)。
对于后者,我能想到的最好的例子是决策树中使用的巧妙的“三向分支”技术。
毫无疑问,前一类要大得多。我所知道的技术都属于以下组之一。
在最近查看我关于“丢失数据处理”的个人笔记时,我注意到我有一个令人印象深刻的技术列表。我只是保留这些笔记以使您高枕无忧,以防初级同事问我如何处理丢失的数据。在实际实践中,我实际上并没有使用它们中的任何一个,除了最后一个。
插补:一组技术的广泛标准,其共同点(我相信)是缺失的数据直接由相同的数据集提供——替代而不是估计/预测。
重构:使用自动关联网络(只是输入和输出层大小相等的神经网络——换句话说,输出与输入具有相同的维度)估计丢失的数据点;这里的想法是在完整数据上训练这个网络,然后输入不完整的模式,并从输出节点读取缺失值。
自举:(我不应该认为没有必要总结,因为它在统计分析中的其他地方使用)。
拒绝:悄悄地从你的训练集中删除缺失/损坏元素的数据点,并假装它们不存在。