如何开发机器学习模型?我们记录下了全过程(机器学习入门第三篇)

点击查看全文


在之前的两篇文章里面,分别介绍了机器学习可以做哪些业务,以及学习机器学习所需要的了解的算法知识。本文将分享开发机器学习模型的全过程。

1.机器学习入门系列第一篇: 机器学习能为你的业务做什么?有些事情你肯定猜不到!

2.机器学习入门第二篇:关于机器学习算法 你需要了解的东西

你应该已经熟悉所有的技术概念了吧,现在,我们可以把某个想法变成一个可用于生产的实际模型了。

建模步骤一览

从较高的层次上来讲,创建一个优秀的机器学习模型跟创建其他任何产品是一样的:首先从构思开始,把要解决的问题和一些潜在的解决方案放在一起考虑。一旦有了明确的方向,就可以对解决方案进行原型化,然后对它进行测试以确定是否满足需求。你需要在构思、原型设计和测试之间不断地迭代,直到你的解决方案足够好,并能够投入市场,此时你就可以将其产品化,并发布出去。现在,我们来看看每个阶段的细节吧。

由于数据是机器学习的重要组成部分,因此我们需要在产品开发过程之上进行数据分层,因此我们的流程如下所示:

  • 构思。让待解决的关键问题和针对解决方案的潜在数据输入保持一致。

  • 数据准备。以一种有用的格式收集和获取数据,以便对模型进行理解和学习。

  • 原型与测试。建立一个或一组模型来解决问题,测试它们执行和迭代的程度,直到有一个模型能得到令人满意的结果。

  • 产品化。让模型以及数据收集与处理稳定化、规模化,以便在生产环境中生成有用的输出。

构思

这个阶段的目标是要让模型解决的关键问题、目标函数和潜在的输入作为一个整体与模型保持一致。

  • 与问题保持一致。如前所述,机器学习可用于解决真正的业务问题。请确保你的团队和公司中的所有利益相关者就你正在解决的问题以及如何使用解决方案达成一致。

  • 选择目标函数。待解决的问题决定了模型的目标是什么。模型试图预测的目标函数是什么?你是否在查找数据中的模式?例如,将照片集按照某种特征分成多个组。

  • 定义质量指标。你如何衡量模型的质量?在没有看到真正结果的时候,一般很难预见可接受的质量,但目标的定向性对此是有帮助的。

  • 集思广益所有可能的输入。你的目标是确定哪些数据可以帮你解决问题或者做出决定。最有帮助的问题是:“专家会如何处理这个问题”。考虑一下解决方案将以什么样的变量或者数据为基础。每一个可能影响人类判断的因素是否都应该测试。请尽可能广泛地搜集这些问题的答案。了解关键因素可能需要有商业方面专业的知识,这是企业或者产品人员需要在此阶段中频繁参与的重要原因之一。数据团队将不得不将这些潜在的输入转化为模型特征。请注意,为了将输入转换为特征,可能需要额外的处理,后面我们会详细讨论这个。

数据准备

本阶段的目标是收集原始数据,并将其作为原型模型的输入。你可能需要对原始数据进行复杂的转换才能使其成为输入数据。例如,假设你的某个特征是消费者对品牌的看法:你首先需要找到消费者谈论品牌的相关来源。如果品牌名称包括常用词(例如“苹果”),则需要将品牌名称与一般情况下的含义(与水果有关)区分开来,然后再通过观点分析模型来运行,所有这些都要在构建原型之前完成。并非所有的特征构建起来都很复杂,但有些可能需要耗费大量的工作。

让我们来更详细地了解一下这个阶段需要做什么:

  • 以最快的速度收集数据。首先,确定缺少了哪些数据。在某些情况下,你可能需要对必要的输入分解到“构建块”级别,或者是到代理级别,这样才能更方便地获取到数据。一旦确定下来缺少哪些数据,就要以最快捷、最简单的方法去获取。对于不可扩展的方法,比如手工下载或购买数据样本,即使代价有点高但可能却是最实际的方法。在这个阶段采集太多的数据通常没有太大的意义,因为你不了解数据是否有用,哪种格式最好,等等。商业人士应该参与到这个阶段中来,因为他们可以协助数据专家们从大量的渠道获取到原本不太容易获取的数据。请注意,在监督学习算法中,你不仅需要用于模型特征的数据,你还需要为模型的目标函数提供数据点,以进行训练、验证以及测试模型。回到房价那个例子,为了建立一个预测房价的模型,你需要一些包含房价的房屋信息!

  • 数据清洗与规范化。在这个阶段中,数据科学或工程团队将承担起主要的工作职责。他们将投入大部分的精力把构思和原始数据转化为实际的模型。数据集需要进行检查和清洗,以避免使用不良数据以及不相关的异常值等等。同时,数据还可能会以不同的比例进行转换,以使其更容易地与其他数据集一致,并能一起使用。特别是在处理文字和图像的时候,通常需要对数据进行预处理,以提取相关的信息。例如,将太多太大的图像插入模型可能会导致信息过量而无法处理,因此你可能需要降低图片的质量、使用图像的其中一部分或仅使用对象轮廓。对于文本,你可能需要检测与文本相关的实体,进行观点分析,查找常用的n-gram(经常用于表示一定数量单词的序列)或执行各种其他的转换。这些通常可由现成的库来实现,无需重新发明轮子。

原型与测试



点击查看全文

如何开发机器学习模型?我们记录下了全过程(机器学习入门第三篇)_第1张图片

你可能感兴趣的:(阿里云)