论文部分内容阅读
无论在研究领域还是工程领域,缺失数据都是一个不能忽视的严重问题。尤其随着数据收集工作从人工转向机器,数据量的急速膨胀使得各种数据质量问题混杂其中,其中数据缺失更是难以避免。不正确的度量方法、收集条件的限制、手动录入时出现遗漏或者数据违反约束等问题都可能导致数据库中的大量“空值”。美国Honeywell公司用于设备维护和测试的数据库中缺失值比例高达50%以上。这并不稀奇,在医药领域由于其不规范的数据收集方法,数据丢失率更能达到60%以上。这些缺失值不仅意味着信息空白,更重要的是它会影响后续数据挖掘和统计分析等工作的进行。一般对缺失值处理的方法包括删除不完整记录、当作特殊值处理或者插补空值。显然,插补的方法不管从量上还是质上,对数据的处理结果都要好于前两种。目前国内外已提出了很多有关缺失值填充的方法。尽管这些方法在各自的应用环境下都得到了很好的效果,但仍然存在一些不足。比如,一些模型像决策树需要指定类属性与条件属性,这样的模型每处理一个属性就要训练一次模型,效率很低。其次,很多算法对高维数据的处理能力有限,引入无用的变量不仅影响执行效率,而且会干扰最终填充效果。第三、在没有真值作为对比的情况下,无法评价不同属性的填充效果。最后,很多算法只适用于小数据集,远远无法满足目前对大量数据的处理要求。为解决上述问题,本文给出了一个基于贝叶斯网和概率推理的填充方法。与常用的贝叶斯网构建算法不同,本文针对缺失值填充这一特定的应用前提,从挖掘属性相关性入手构建网络。建立贝叶斯网时不设定任何目标属性,由影响最大的属性作为根。这一过程不需要用户对数据有太多了解,完全由算法自动完成。根据贝叶斯网自身的条件独立性假设可以分解对多维联合概率的求解,降低在处理高维数据时的复杂度。填充值根据概率推理结果得到。推理产生的概率信息能够反映填充值的不确定程度,即概率越小,准确率越低,反之,准确率越高。这就为评价填充质量提供了一个参考。为使算法适用于混合属性集,本文在贝叶斯网中加入了对连续属性的处理,所有属性的填充均在一个模型下完成。针对大数据集,应用并行技术来解决效率问题。本文给出了算法在Map-Reduce中的实现。实验部分分别验证了贝叶斯网构建算法和概率推理算法的有效性并对比分析了整个填充算法的准确率;并行处理部分给出了并行效率并分析了影响并行性能的因素。