笔者邀请您,先思考:
1 您如何实施和开展机器学习项目?有哪些关键点?
为了进一步完善我们的内部模型,本文将概述AurélienGéron的机器学习项目清单,参见他的畅销书“动手学习Scikit-Learn&TensorFlow”。
我发现编写和比较特定过程的各种解释的活动,以实现自己对所述过程的解释是有价值的。 我先前已经对我们可以称之为机器学习过程的其他解释做了这样的事情(至少在某种程度上,可以合理地与数据科学或数据挖掘过程紧密结合)你可以在这里,这里和这里找到示例。
先前的文章考虑了经典的CRISP-DM模型,KDD过程,Francois Chollet的4步模型(针对Keras,但可推广),Yufeng Guo的7个机器学习步骤,甚至针对更狭窄的学科的修改,如基于文本的数据科学任务框架。 为了进一步完善我们的内部模型,本文将概述AurélienGéron的机器学习项目清单,如他的畅销书“动手学习Scikit-Learn&TensorFlow”所示。这与郭的7步过程类似,但又更上一层楼, 它提出了与项目接轨的清单(checklist),因此感觉不那么规范而更具描述性,它提醒你应该做什么,而不是对你为什么做你正在做的事情的一些重要解释。 这是一种没有判断力的观察。
以下是Géron清单的简要概述。 我谦卑地建议那些还没有读过Géron的书的人阅读它,以针对初学者和从业者获取更多有用信息。
1 明确问题
第一步是确定目标是什么。 Géron在商业术语中指的是目标,但这并非绝对必要。 但是,最终理解如何使用机器学习系统的解决方案非常重要。 此步骤还讨论了针对给定问题的可比较场景和当前变通方法,以及正在考虑的假设,以及确定了对人类专业知识的需求程度。 在该步骤中构建的其他关键技术项包括确定用哪种类型的机器学习问题(监督,无监督等),以及采用适当的性能度量。
2.获取数据
此步骤以数据为中心:确定需要多少数据,需要什么类型的数据,从何处获取数据,评估数据采集的法律义务……以及获取数据。 获得数据后,确保其被适当地匿名化,确保您知道它实际是什么类型的数据(时间序列,观察,图像等),将数据转换为您需要的数据,并创建训练, 验证和测试数据集。
3.探索数据
清单中的这一步类似于通常称为探索性数据分析(EDA)的步骤。 目标是在建模之前尝试从数据中获得洞察力。 回想一下,在第一步中,要确定和探索有关数据的假设; 现在是更深入调查这些假设的好时机。 领域专家可在这个步骤中特别有用,可以解决那些可能对于机器学习实践着不明显的相关性问题。 在这里研究特征及其特点,以及特征及其值的一般可视化(例如,想象它是多么容易,例如,通过箱形图快速识别异常值而不是通过数字查询)。 记录您的探索结果以供以后使用是一种很好的做法。
4.准备数据
是时候应用您在上一步中确定有效的的数据转换。 此步骤还包括您将要执行的任何数据清洗,以及特征选择和特征工程。 任何用于值标准化和/或归一化的特征缩放也会在这里发生。
5.对数据建模
是时候对数据进行建模,简化最初的模型集,使之看起来是最有效的一组。 (这类似于Chollet过程中的第一个建模步骤:良好模型→“更好”模型,您可以在此处详细了解)此类尝试可能涉及使用完整数据集的样本来方便初步模型的训练,模型应该包括广泛的类别(决策树,神经网络,线性等)。 模型应该被建立,测量,并相互比较,每个模型的误差类型应该被调查,每个算法的最重要的特征应该被使用。 应该将表现最佳的模型列入候选名单,然后可以对其进行微调。
6.微调模型
候选模型现在要对其超参数进行微调,并且在这个阶段应该研究集成方法。在此步骤中应该使用完整的数据集,如果数据集样本已经在上一个建模阶段使用;如果没有接触到所有训练数据或与其他已接触过所有训练数据的模型进行比较,则不应选择微调模型作为“获胜者”。而且,你没有过度拟合,对吧?
7.提出解决方案
现在是展示的时候了,希望您的可视化技能(或者实现团队中的其他人的可视化技能)能够达到标准!这是一个不太技术性的步骤,尽管此时确保系统的技术方面有适当的文档说明也很重要。回答利益相关方的问题:利益相关方是否了解大局?解决方案达到目标了吗?你是否传达了假设和限制?这本质上是一种推销,所以要确保推销的是对系统的信心。如果结果不被理解和采用,为什么要做所有这些工作呢?
8.启动ML系统
让机器学习系统为生产做好准备;它需要插入更广泛的生产系统或战略。作为一种软件解决方案,它将在事先进行单元测试,并应在启动和运行后进行充分监控。在新的或更新的数据上重新训练模型是这个过程的一部分,在这里应该加以考虑,即使在前面的步骤中已经考虑过这一点。
作者:Matthew Mayo 原文链接: https://www.kdnuggets.com/2018/12/machine-learning-project-checklist.html