对于希望利用数据来改善客户体验、开发更好的产品等的企业来说,机器学习 (ML) 变得越来越重要。 但在企业能够充分利用机器学习技术之前,需要确保拥有良好的数据来输入人工智能和机器学习模型。
什么是数据准备?
数据准备包括清理、转换和结构化数据,以便为进一步处理和分析做好准备。 数据通常不会以标准化格式到达企业,因此需要为企业使用做好准备。
在数据科学家可以运行机器学习模型来梳理见解之前,他们首先需要转换数据(重新格式化或纠正数据),以便数据采用一致的格式来满足他们的需求。 事实上,数据科学家多达 80% 的时间都花在数据准备上。 考虑到招聘和再培训数据科学人才的成本可能很高,这表明数据准备对数据科学有多么重要。
为什么数据准备对机器学习很重要?
机器学习模型始终需要特定的数据格式才能正常运行。 数据准备可以修复丢失或不完整的信息,确保模型可以应用于良好的数据。
企业在其数据湖或其他地方收集的一些数据是结构化的,例如客户名称、地址和产品偏好,而大多数数据几乎肯定是非结构化的,例如地理空间、产品评论、移动活动和推文数据。 无论哪种方式,这些原始数据对于公司的数据科学团队来说实际上都是无用的,除非它以标准化、一致的方式进行格式化。
Talend 是一家提供工具来帮助企业管理数据完整性的公司,它提出了数据准备的一些关键好处,其中包括通过“在处理之前捕获错误”来快速修复错误的能力以及降低数据管理成本的能力。 当您尝试将不良数据应用到其他良好的机器学习 (ML) 模型时,可能会膨胀。
机器学习中数据准备的最佳实践
要获得广泛的概述,您可以查看以下五个数据准备技巧; 这些更通用的技巧也主要适用于 ML 数据准备。 然而,机器学习数据准备有一些特殊的细微差别值得探索。
根据计划准备数据
您可能提前知道希望 ML 模型预测什么,因此做好相应准备是值得的。 如果您对希望实现的结果有很好的了解,则可以更好地定义要收集的数据类型以及如何清理数据。
这还可以让您更好地应对丢失或不完整的数据。 处理缺失数据的常见方法是空值替换。 例如,如果您是一家拥有乘客数据的航空公司,您可能会选择将空值放入跟踪膳食偏好的字段中。
但根据您的应用程序,空值替换可能是一个糟糕的方法。 从我们之前的示例来看,航空公司不应为缺失的乘客国籍数据插入空值,因为这可能会给他们的旅行体验带来严重问题。 了解哪些数据至关重要以及如何处理不完整的记录至关重要。
考虑参与数据收集的人员
尽管您应该考虑投资机器人流程自动化来处理简单、重复的任务,以免您的员工陷入乏味的负担,但人员仍然是您最大的资产,也是为机器学习做好数据准备的障碍。 通常情况下,即使在同一部门内,企业也会被数据孤岛淹没。
例如,新闻机构可能了解读者对网络的兴趣,但无法个性化由具有不同底层存储系统的不同团队运行的移动应用程序。
帮助员工成为集体数据驱动意味着不仅要努力收集和使用数据,还要跨部门和角色以有用的方式共享这些数据。 集体数据收集和使用流程对于确保机器学习模型获得更好的数据至关重要。
避免目标泄漏
作为数据科学和机器学习领域的领导者,谷歌在机器学习训练数据中的目标泄漏方面提供了一些明智的建议:“当您的训练数据包含在您要求预测时不可用的预测信息时,就会发生目标泄漏。”
谷歌专家接着解释说,当机器学习模型从纯粹的预测评估指标转向真实数据时,这可能会导致机器学习模型表现不佳。 这里的重要任务是确保您拥有做出准确预测所需的所有历史数据。
分解你的数据
Deepchecks 是一家为 ML 提供开源 Python 库的公司,该公司建议公司应将数据分为训练集、验证集和测试集,以获得更好的结果。
通过“从训练数据中获得见解,然后将处理应用于所有数据集”,您将很好地了解您的模型如何针对现实世界的数据执行。 大多数情况下,将 80% 的数据放在训练集中,将 20% 的数据放在测试集中是有意义的。
谨防偏见
尽管我们可能假设机器总是产生公正、正确的决策,但有时这些机器在传达我们自己的偏见方面更有效。 由于机器学习模型中可能存在偏差,因此必须仔细检查用于训练模型的数据源。
机器学习模型的智能程度取决于为其提供数据的数据,而这些数据受到收集数据的人的限制。 反过来,人们受到来自机器的数据的影响,并且可能与原始数据越来越疏远。 总的来说,这使得我们越来越无法为我们的模型提供良好的数据,因为我们已经全心全意地信任它们。
高度的谦虚和谨慎对于为机器学习准备数据至关重要,这样偏见就不会在几代数据和模型中扩散。 为了确保您的数据团队不仅精通技术,而且了解机器学习数据准备过程中可能出现的问题,请考虑为他们报名参加全面的机器学习课程。
腾出时间进行数据探索
如果不先通过数据探索打下坚实的基础,就很容易直接进入模型构建阶段。 数据探索是重要的第一步,因为它允许您检查各个变量的数据分布或变量之间的关系。 您还可以检查共线性等内容,它可以指出一起移动的变量。 数据探索是一种很好的方法,可以深入了解数据可能不完整的地方或进一步转换可能有帮助的地方。