数据预处理是web数据集成中的一个重要步骤,修复缺失数据是数据预处理的重要组成部分。在web数据集成中修复缺失数据的关键问题是缺失点没有可直接提供参考的观察值,这导致用户不能使用估算和推理的方法,只能依靠有经验的用户或领域专家通过制定规则才能填充数据。然而,对于具有成千上万个缺失点的大型数据库,由用户理解数据并制定有效的填充规则是不可行的。因为在修复缺失数据时,用户需要了解哪些候选子集对缺失点填充概率和覆盖程度最大。然而,给用户推荐填充概率和覆盖程度最大的候选子集计算量非常大。为了解决这个问题,本文提出了一种基于信息熵的生成候选子集算法,通过用户对初始候选子集的编辑,使用该算法计算出缺失点填充概率和覆盖程度最大的候选子集。通过用户选择的候选子集并依据数据集中一对多的关联关系生成并推荐缺失点覆盖程度更高的规则,并将用户选择的规则通过数据集中一对多的关联关系泛化至更多的缺失点中。经过原型系统实现结果表明,用该方法修复的数据具有较高的精度,同时,实验表明普通用户在短时间内便可修复大量缺失数据,有效地提高了数据修复的效果。
在web 数据集成中需要进行分析处理的数据集通常是不完整的,其原因大致可分为两类:a) 由于程序缺陷或人为失误所造成的随机数据缺失;b) 数据已知但未及时录入数据库的数据。处理a 类缺失数据的传统方法是通过插补或机器学习,由于插补和机器学习需要基于观察值,当某类实例数据已知但未录入数据库时, 观察到的数据中将不包含这类实例的数据, 所以不能使用推测的方法来修复b 类缺失数据。
同时,领域专家在编辑某类缺失点时,选择的候选子集往往能适用于多个缺失点,但在以前的系统中并没有关于显示候选子集缺失点覆盖范围的研究,用户只能多次填写同一候选子集,这极大地影响了修复数据的效率。因此,本文提出了一种基于信息熵的生成候选子集算法来筛选具有最大填充概率和覆盖程度的候选子集, 并依据数据集中一对多的关联关系生成规则、泛化规则来帮助用户迭代地填充缺失数据。
1.1. 主要实例 本文引用了实际项目中的城市房地产大数据,该数据是利用网络爬虫从各城市房地产交易备案信息网站所爬取, 并经过数据集成处理的真实数据。
该实例展示了如何利用数据中一对多关联关系生成规则、泛化规则并应用数据库的过程。在用户填充缺失数据过程中,利用楼盘表、楼栋表、户表、许可表、栋许可关联表和开发商楼盘关联表等表中的一对多关联关系,楼盘表、楼栋表和户表可以使用嵌套方式引用,通过对用户编辑的数据使用基于信息熵的生成候选子集算法给用户推荐缺失点的候选子集。在本文实例中所用表相关属性如下所示: