译者 | 陈峻
审校 | 重楼
不知你是否知晓,构建和运行机器学习(Machine Learning,ML)模型通常是一个虽有益但耗时且复杂的过程。其中包括:数据准备、特征生成、模型拟合、以及验证和部署等阶段。更重要的是,随着数据趋势的变化,这些模型需要保持更新。否则,它们很快会变得过时,进而做出低质量的预测。
而端到端的ML管道则是通过自动化工作流程,来提高可扩展性和效率的必要条件。通过此类管道,开发者可以更加轻松、一致地开发、测试和部署新的模型。下面,我将向你介绍什么是机器学习管道,以及如何根据开发者的需求,创建出ML管道。
什么是机器学习管道?
从定义上说,机器学习管道是对ML工作流程的多个阶段进行系统自动化的过程。虽然其管道中的每个阶段相对于其他阶段而言,都是一个独立运作的单元,但是它们能够通过协同,获得累积的结果。也就是说,机器学习管道采用模块化的方法,通过对原始数据的提取和预处理,在模型的训练和部署等多个连续阶段,实现高质量的结果预测。
作为自动化通道,ML管道无需人工进行数据收集和处理、模型训练、质量验证、以及最终部署,而能够自动执行各种重复性的过程。据此,管道可以提高模型的管理和维护效率,降低错误率,进而最终提高各种模型的准确性和可靠性。
同时,可被用于单个或多个模型ML管道,通过为数据科学家和人工智能(AI)工程师提供可扩展且持久的解决方案,来开发、产生和更新AI系统,帮助他们有效地管理ML流程的复杂性。
此外,合理的管道执行会使得ML工作流的实施更加灵活。你可以自行定义所需的功能、模型参数和监控指标,以生成和更新管道中最关键的组件:模型。当然,此处的“管道”一词并不代表着单向流动。ML管道可以通过循环来支持迭代。而且,ML管道不同于数据管道。数据管道的目标是在转换系统的同时,在系统之间移动数据。而ML管道专注于简化和加速复杂的ML流程,以提高效率。
创建机器管道的分步指南
无论面对何种应用场景,大多数ML管道的典型阶段是相似的,基本上会遵循如上图所示的工作流程。其中的每个阶段都建立在前一个阶段的基础上。也就是说,在获得最终结果之前,前一阶段的输出将成为后一阶段的输入。下面,我们来具体讨论典型ML管道中的各个阶段:
1. 数据的收集
作为第一阶段,ML管道会将从应用程序编程接口(API)、调查和问卷、在线数据库、机构记录、以及政府机构文件等来源,收集和记录原始数据。数据是源自第一手研究,还是现有资源,则取决于ML使用案例的具体情况。
在此阶段,你可以使用诸如:Request、Beautiful Soup、Scrapy 和 Selenium等任一款强大的Python数据收集库。同时,由于这些数据是原始的、非结构化的且混乱的,因此它们并不适合直接开展ML分析,需要进入下一阶段。
2. 数据预处理
在此阶段,数据将被清理,并以可用的格式进行组织,以实现高效的分析,以及针对模型的训练和测试。如果此阶段被跳过,收集到的数据则将不适合模型。也就是说,模型将无法使用数据集来产生任何有意义的结果。
在ML中,典型的数据预处理步骤包括:整理缺失数据、处理重复数据、减少干扰数据、以及特征工程(下一阶段会讨论到)。数据预处理的实用Python库包括:Pandas、NumPy、Scikit-Learn和Scipy等。数据预处理的最终目标是为特征工程准备数据。
3. 特征工程
特征工程是创建新特征的过程,同时也可以识别出那些对于提高模型预测能力具有重要意义的、相关预先存在的特征。此阶段也是数据预处理的一部分,毕竟该阶段需要将数据转换为适合特定类型算法、且能够有效训练ML模型的形式。
特征工程的全过程通常会涉及以下技术:
- 特征提取:这是从原始数据中识别和转换最重要特征的过程,它调用算法专注于数据集中的重要内容。例如,如果你想通过构建一个模型,来预测哪个学生会获得奖学金,那么哪些数据集会对此有用呢?在通常情况下,学习成绩、财务状况背景、个人特质等特征都将是相关的。典型的特征提取技术包括:降维和主成分分析(PCA)。这两者都可以使用Python的 Scikit-Learn库来实现。当然,具体选择哪种技术,则取决于数据类型和你的目标。
- 特征缩放、归一化、标准化:这是对数据集中的特征进行归一化(即:将特征调整到通用维度)的过程,可确保学习算法更容易地找到它们之间有意义的关系。当数据集中的所有特征具有相似的维度时,它会消除由于数据量级而导致的偏差。请注意,并非所有的ML算法都需要特征缩放。那些能够处理多特征(如:决策树和随机森林)的、基于树的算法,就不需要特征扩展。
- 特征编码:这是将相关分类特征转换为数字特征,以确保算法发挥最佳性能的过程。例如,如果奖学金预测数据集的 “财务状况背景” 列中的观察结果是可以被分类的,那么特征编码会将它们转换为 0 和 1 的数值。特征编码的典型示例包括:One-hot或dummy编码、标签编码和序号编码等。对于此过程,你可以使用Python的Scikit-Learn库。值得注意的是,特征工程是管道中最重要的阶段之一,毕竟它可以帮助ML模型学习到数据的模式,并提升其性能。当然,特征工程是一个复杂的过程,它需要通过实验,来确定与训练模型相关的特征,具体情况则取决于你使用的特定案例。
4. 模型训练和测试
根据你的需求(如:分类、聚类、回归)和性能指标选择了合适的ML算法后,就可以开始训练生成的模型了。数据集通常会被分为两类,分别用于训练和测试。其中的训练数据集将帮助模型了解特征和目标变量(或称标签)中的任何潜在模式和关系。该训练过程将教会模型以尽可能高的准确性,获取输入,并预测输出。注意:此处的特征是向模型提供信息的输入,而目标变量(标签)则是模型尝试预测的输出。
当模型达到目标预测的精度时,训练即可结束。如果模型的性能低于预期,你可以通过重新训练模型的方式更改算法,或是添加更准确的数据,甚至可以设计新的功能来处理性能不佳的情况。
5. 模型评估或分析
训练结束后,我们可以使用准确率、精度、召回率和 F1 分数等性能指标,来评估模型的性能。其中:
● 准确性:表示正确分类的实例,占所有实例的比例。
● 精度:表示那些被分类为“真”的模型,占比所有实际确为“真”的数量。
● 召回率:衡量模型设法识别出的实际为“真”的实例数量。
● F1 分数:将精确率和召回率采取平衡(加权调和平均)的数值。随着精度的提高,召回率会下降,反之亦然。当你在精确率和召回率之间找到了最佳平衡时,便获得了最有价值的指标。
总的说来,此阶段的目标是确保模型在处理新的、未曾见过的数据时的表现。
6. 模型部署
ML管道的这个阶段意味着,你已成功开发并评估了符合预测准确性水平的模型。至此,我们可以将模型部署到生产环境,以确保它可以在实际环境中运行了。例如,奖学金预测模型可以在学校现有的学生档案记录系统中被部署实施,以便投产使用。
在此,你可以使用一款由Google发布的开源工具–TensorFlow Extended(TFX) 。它可以使得Python中的模型在部署过程更加高效。同时,该工具提供了许多框架、库和组件,可用于模型的训练、服务、部署和监控。
7. 模型的监控
这是ML管道的最后阶段。随着时间的推移,数据会逐渐过期,模型的预测精度也会随之降低。这种准确度的下降常被称为模型漂移。这就是为什么我们需要持续监控在生产环境中模型的性能,并在必要时对其进行再训练,以确保其仍然准确可靠的原因。
通常,有如下两种类型的模型漂移:
- 数据漂移:当特征的统计属性发生了变化,但特征和目标变量之间的关系仍保持不变时,就会发生此类漂移。这意味着生产环境中的特征与训练阶段的特征出现了差异。让我们仍以奖学金预测模型为例,如果该模型在2020年之前已投产,而学校后续引入了新的录取标准,并改变了他们评估课外活动的方式,那么就会影响到该模型的预测能力。其根本原因在于模型没有通过更新,以反映上述变化,自然也就表现不佳。
- 概念漂移:当特征和目标变量之间的关系随着时间的推移而发生变化时,就会出现此类漂移。例如,在使用奖学金预测模型时,如果最初的模型是根据GPA和考试成绩来预测奖学金的可能性,但是学校现在关注的是社区服务或领导潜力等社会价值,那么模型的准确性就会下降。这正是因为特征与目标变量(即:奖学金)之间的关系发生了变化。因此,我们需要用新的标准对模型进行重新训练。
当然,模型监控也可以跟踪准确度的变化、各种偏差、公平性、以及操作指标。TensforFlow库里的TensorBoard便是一个很好的模型监控工具。同时,ML的可观察性平台(如:obvious AI和Valohai)在该阶段也非常实用。
创建机器学习管道的好处
创建机器学习管道的主要优势包括:
- 更高的生产力:机器学习管道减少了对于持续人工干预和手动方法的依赖。通过减少重复性流程和优先考虑自动化,数据科学家可以有更多的时间,来完成真正需要人工干预的工作,例如:决策的制定、数据的标注(即:正确地标记数据)、以及在训练期间模型的微调。
- 高质量的预测:构造良好的机器学习管道可以减少误判,让模型返回更接近真实情况的预测。
- 可扩展性:高效的ML管道不但可以处理大量复杂的数据,而且可以确保模型能够被继续有效地执行。由于企业的数据量会随着业务不断增长,因此这一点显得非常重要。
- 易于故障排查:由于管道中的每个阶段都是相互独立的,因此更易于在特定的阶段跟踪问题,并随后开展调试。
综上所述,机器学习管道是数据科学家的强大工具。它们能够在将原始数据转化为有价值的见解的过程中,提供一致且有效的流程保证。
译者介绍
陈峻(Julian Chen),51CTO社区编辑,具有十多年的IT项目实施经验,善于对内外部资源与风险实施管控,专注传播网络与信息安全知识与经验。
原文标题:Set Up Your First Machine Learning Pipeline With This Beginner’s Guide,作者:Praise James