【论文阅读】CleanML:评估数据清理对 ML 分类任务影响的研究
CleanML: A Study for Evaluating the Impact of Data Cleaning on ML Classification Tasks Peng Li, Xi Rao, Jennifer Blase, Yue Zhang, Xu Chu, Ce Zhang arXiv:1904.09483v3 [cs.DB] 5 Apr 2021
摘要:数据质量影响机器学习(ML)模型的性能,数据科学家在模型训练之前花费大量时间进行数据清洗。然而,目前尚缺乏对数据清洗如何影响ML的严格研究——ML社区通常关注开发对某些特定噪声类型或分布具有鲁棒性的ML算法,而数据库(DB)社区主要研究数据清洗本身而不考虑下游ML分析的消费方式。我们提出了一个CleanML研究,系统地探讨了数据清洗对ML分类任务的影响。开源和可扩展的CleanML研究目前包括14个具有真实错误的真实世界数据集,五种常见的错误类型,七种不同的ML模型,以及每种错误类型的多种清洗算法(包括实践中常用的算法和学术文献中的最先进解决方案)。我们通过统计假设检验来控制实验中的随机性,并使用Benjamini-Yekutieli(BY)过程来控制错误发现率。我们以系统的方式分析结果,得出许多有趣且非平凡的观察结果。我们还提出了多个未来研究方向,以进一步推动数据清洗和ML之间的交叉学科研究。
研究目的与问题定义
机器学习 (ML) 应用程序的质量取决于其训练的数据质量,数据清理一直是构建高质量 ML 模型的基石。
本研究旨在深入探讨数据清洗对机器学习分类任务的影响,并探讨如何选择最适合的清洗方法和机器学习模型。数据清洗是指在训练或测试机器学习模型之前,对数据集中的错误或不一致数据进行检测和修复的过程。虽然数据清洗对机器学习性能和质量至关重要,但目前尚未进行全面且严谨的研究来评估其影响。
研究背景
ML领域:一直专注研究噪声对ML模型的影响,而不用进行数据清洗,一方面有研究证明无论从经验上还是理论上都能证明ML模型对少量随机噪声具有鲁棒性(robust)。
[5] D. Alistarh, D. Grubic, J. Li, R. Tomioka, and M. Vojnovic. QSGD: Communication-efficient sgd via gradient quantization and encoding. In NIPS, pages 1709–1720, 2017
16] C. De Sa, M. Feldman, C. Re, and K. Olukotun. Understanding and ´ optimizing asynchronous low-precision stochastic gradient descent. In ACM SIGARCH Computer Architecture News, volume 45, pages 561– 574. ACM, 2017.
[34] X. Lian, C. Zhang, H. Zhang, C.-J. Hsieh, W. Zhang, and J. Liu. Can decentralized algorithms outperform centralized algorithms? a case study for decentralized parallel stochastic gradient descent. In NIPS, pages 5330–5340, 2017.
[51] H. Zhang, J. Li, K. Kara, D. Alistarh, J. Liu, and C. Zhang. Zipml: Training linear models with end-to-end low precision, and a little bit of deep learning. In 34th ICML, pages 4035–4043. JMLR. org, 2017. [52] W. Zhang, S. Gupta, X. Lian, and J. Liu. Staleness-aware async-sgd for distributed deep learning. arXiv, 2015.
另一方面,对于某些非白噪声,也不是进行数据清洗,机器学习领域主要关注于设计能够对特定分布的噪声具有鲁棒性的机器学习算法。
DB领域:研究具有数据清理功能的典型 ML 工作流程对 ML 模型的影响。据报道,数据科学家花费高达80%的时间执行各种数据清理活动[1]。在研究数据清理对下游 ML 模型性能的影响方面,先前的工作有限,他们倾向于关注一些特定的错误类型(例如,BoostClean 中的域值错误)、特定的清理方法(例如,ActiveClean中用于清理的人类预言机)和/或特定的 ML 模型(例如,在 ActiveClean中使用随机梯度下降训练的凸模型和 BoostClean中的加权集成模型)。
[1] Cleaning big data: Most time-consuming, least enjoyable data science task. https://www.forbes.com/sites/gilpress/2016/03/23/data-preparation-most-time-consuming-least-enjoyable-data-science-task-survey-says/.
方法与实施方案
本文的目的不是提出一种新的ML数据清理方法。相反,目标是
(1)针对不同的错误类型、清理方法和ML模型,对数据清洗对下游ML分类模型的影响进行首次系统的实证研究;(2)鉴于我们的实证发现,为未来的研究提供了一个起点,以推进ML清洁领域。
为了实现这一目标,研究采用了CleanML关系数据库模式,用于存储不同实验的结果。数据库包括三个关系表:R1、R2和R3,分别考虑不同情境。每个关系表中的每条记录包含以下属性:
- 数据集:选择包含不同类型错误的真实世界数据集,并设计相应的分类任务。
- 错误类型:指定需清洗的错误类型,如缺失值、异常值、重复记录、不一致和错误标签。
- 检测方法:选用用于检测错误的自动算法,包括实践中常用的方法和学术文献中的最先进方法。
- 修复方法:选用用于修复错误的自动算法,包括实践中常用的方法和学术文献中的最先进方法。
- 机器学习模型:选择用于分类任务的机器学习算法,包括七种经典且竞争力强的模型。
- 场景:指定数据清洗是在训练集上还是测试集上进行,以评估数据清洗对机器学习在模型开发或部署阶段的影响。
- 标志:指定数据清洗对机器学习性能的影响,有“P”(正面)、“N”(负面)或“S”(无显著)三种可能的值,表示清洗后的性能相对于清洗前分别更高、更低或无显著差异。
具体实施方案如下:
- 生成性能指标:根据实验规范,随机划分数据集为训练集和测试集,执行数据清洗,训练和评估机器学习模型,并获取一对性能指标(如准确率或F1分数),分别表示清洗前后的性能。
- 处理随机性:重复上述步骤20次,使用不同的划分来控制随机性。采用配对样本t检验判断平均性能差异是否显著,并根据结果设置标志属性。
- 控制假发现:考虑到广泛的研究范围可能导致多次假设检验问题,采用Benjamini-Yekutieli (BY)过程在每个关系表中控制假发现率,确保误报率低于预定阈值。
难点和本文贡献
(1)ML 模型的准确性取决于数据集、ML 模型、是否应用数据清理、在何处应用数据清理(针对训练数据或测试数据)以及使用哪种清理算法,需要统一的分析方法
(2)为了使我们的研究反映数据清理对ML的实际影响,必须使用包含真实错误的真实数据集,我们通常没有真实干净的版本。
(3)多重假设检验问题。ML 模型本质上是概率性的,例如,对同一数据集进行不同的训练/测试拆分可能会产生完全不同的结果。确保研究结果的统计学意义是一项重大挑战。
(4)专注于包括异常值、重复值、不一致值、标签错误和缺失值五种错误
(5)代码开源
实验性能与发现
通过对数据库中的结果进行系统查询和分析,研究得出了许多有趣且重要的发现,包括:
- 数据清洗通常会提高或保持机器学习模型的性能,但不当或过于简化的清洗方法可能导致性能下降。
- 不同类型的错误对机器学习模型的影响程度不同,缺失值和异常值最为严重,而重复记录和不一致相对较轻微。
- 不同类型的机器学习模型对数据清洗的敏感性不同,基于树的模型(如随机森林和XGBoost)鲁棒性较高,基于距离或概率的模型(如k近邻和朴素贝叶斯)较为敏感。
- 在训练集上进行数据清洗通常比在测试集上进行更为有效,可提升模型在未见数据上的泛化能力。
- 模型和清洗方法的选择可进一步提高或保持数据清洗对机器学习模型性能的正面影响。
未来研究方向
研究表明,在许多情况下,数据清理可以大大提高下游 ML 性能。这表明未来在ML清洁领域有很多研究机会。
研究提出了一些未来的研究方向,包括:
- 针对下游机器学习模型任务,设计更有效和智能的数据清洗方法
- 针对更多的机器学习任务和更多的数据进行测试
- 理论化框架的内容
- 评估数据清洗对机器学习模型可解释性、可信度和公平性等其他方面的影响。
心得启发
the lack of ground-truth (i.e., labeled examples) has been a long-standing challenge in designing general-purpose data cleaning solutions
通用的数据清洗通常因为缺乏ground-truth而只能用替代目标(最小修复),这是通用数据清洗的瓶颈,如果拥有准确的地面真实数据,那么在数据清洗过程中将会获得许多好处和优势:
-
可靠的标准: 有准确的地面真实数据意味着可以确切地知道哪些数据是正确的,可以用它们作为标准来比较和验证其他数据。这使得数据清洗的过程更为明确和可靠。
-
指导修复: 有地面真实数据可以直接指导数据修复的过程。可以使用这些真实标签来指导算法决定如何更改或修复可能存在的错误数据,从而使数据更准确。
-
评估清洗效果: 拥有地面真实数据允许评估数据清洗的效果。可以将清洗后的数据与真实数据进行比较,从而衡量清洗过程是否达到了预期的改进效果。
-
决策支持: 地面真实数据可以为业务决策提供可靠的支持。基于准确数据的决策更有可能取得成功。
fortunately, in the problem of data cleaning for ML, we have a more clearly defined objective, i.e., to improve the downstream ML model performance.
虽然可能缺乏完全准确的地面真实数据,但我们可以使用下游机器学习模型的性能作为目标来指导数据清洗的过程。换句话说,通过数据清洗来尽量减少对下游机器学习模型性能的负面影响为目标,可以不需要准确的清洗,只需要对机器学习任务负责。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!