摘要
数据清洗是数据科学领域非常重要但耗时的步骤,一方面数据清洗的质量决定了后续建模的模型表现,另一方面数据清洗在整个数据科学项目中通常占用约80%的时间,该步骤需要花费大量的时间精力。在2017年由数据科学社区Kaggle进行的一项调查中,当被问及数据科学探索中所面临的最大问题时,49.4%的回答者认为“脏数据”的清洗是数据科学工作中最耗费精力的部分。因此,构建全自动的数据清洗系统能够帮助数据科学从业者节约大量时间和精力,具有非常重要的现实意义。 本文基于强化学习算法,构建了全自动的数据清洗系统。对于不同的数据集,该系统能够自动搜索特定的数据清洗策略,帮助数据科学从业者完成初步数据清洗工作。在本文的研究方案中,通过无模型(Model-Free)的强化学习算法,即Q-Learning算法将数据清洗中的各个流程进行组合,然后为分类型问题以及回归型问题中需要清洗的数据集搜索特定的数据清洗策略,同时记录该策略对应的数据清洗效果,实现了数据的全自动清洗。此外,本文还通过一定的算法设计,提出了相比于已有文献“指定奖赏矩阵设计”表现更好的“自适应奖赏矩阵设计”,且通过加入清洗步骤顺序限制对系统的运行速度进行了优化,在提高清洗精度的同时兼顾了系统运行效率。 在完成系统实现后,本文采用Kaggle平台上6个分类问题数据集以及3个回归问题数据集对系统进行了测试。测试结果表明,相比于进行简单数据清洗的基准组,经过指定奖赏矩阵设计下的自动数据清洗系统处理后,模型整体表现有所提升,提升幅度在3%~50%之间。剔除个别实验异常值后,数据清洗系统运行时间平均为69.9秒。经过自适应奖赏矩阵设计下的自动数据清洗系统处理后,绝大部分模型表现相比于指定奖赏矩阵设计有进一步提升,并且提升幅度在12%以内。剔除个别异常值后,数据清洗系统运行时间平均为818秒。为了缩短系统的运行耗时,本文在算法中加入了清洗流程顺序限制。实验结果表明加入限制后,大部分数据集的清洗效果基本不变,而系统运行耗时缩短了50%以上。同时,稳健性测试结果表明,上述实验结论不受模型评估指标或所用模型的影响。该系统能够帮助数据科学从业者节约大量精力并取得较好的数据清洗效果,具有很高的实际应用价值,并且在全自动数据科学研究领域也具有一定的理论价值。