当前位置: 首页 > 科技观察

你需要了解哪些机器学习算法,如何开发机器学习模型?

时间:2023-03-14 19:24:35 科技观察

学习概念及其对业务目标的影响非常重要。问题定义中算法选择的微小变化可能需要完全不同的算法来解决它,或者至少需要使用不同的数据输入构建不同的模型。可以为用户识别照片类型的约会网站可以使用无监督学习技术(例如聚类)来识别共同主题。如果它想向特定的人推荐潜在的约会对象,该网站可能会根据个人特定的输入(例如他们看过的照片)使用监督学习。特征选择机器学习模型识别数据中的模式。输入模型的数据被组织成特征(也称为变量或属性):这些是相关的,主要是独立的数据片段,描述了您想要预测或识别的现象的某些方面。例如,前面提到的公司希望优先考虑贷款申请人的外展活动。如果我们将问题定义为“根据客户转化的可能性对客户进行优先排序”,我们将获得包括类似客户对公司各种外展活动的响应率在内的特征。如果我们将问题定义为“优先考虑最有可能偿还贷款的客户”,我们将无法获得这些特征,因为它们与评估客户的可能性无关。目标函数的选择目标函数是你想要优化的,或者模型试图预测的。例如,如果您向用户推荐他们可能感兴趣的项目,则模型的输出可能是用户在看到该项目时点击该项目的概率,或者用户购买该项目的概率。目标函数的选择主要取决于业务目标,在本例中,您对用户参与度感兴趣(目标函数可能是点击或停留的时间)还是对收入感兴趣(目标函数是购买)?另一个考虑因素关键因素是数据的可用性:对于要学习的算法,您必须提供大量数据点,这些数据点被“标记”为正面(用户看到并点击的产品)或负面(用户看到并点击的产品)看到了,但没有点击)。2.如何开发机器学习模型?摘要:创建一个优秀的机器学习模型与创建其他产品一样:首先从一个想法开始,将要解决的问题和一些潜在的解决方案一起考虑。一旦你有了明确的方向,你就可以对你的解决方案进行原型设计,然后对其进行测试,看看它是否满足你的要求。看看这篇文章,了解如何一步一步地做到这一点。建模步骤概览在高层次上,创建良好的机器学习模型与创建任何其他产品相同:它从一个想法开始,将要解决的问题和一些潜在的解决方案结合在一起。一旦有了明确的方向,就可以对解决方案进行原型设计,然后进行测试,看是否满足要求。您需要在构思、原型制作和测试之间反复进行,直到您的解决方案足够好以将其推向市场,此时您可以将其产品化并发布。现在,让我们看看每个阶段的细节。由于数据是机器学习的重要组成部分,我们需要在产品开发过程之上对数据进行分层,因此我们的过程如下所示:构思。将要解决的关键问题与解决方案的潜在数据输入对齐。数据准备。以有助于模型理解和学习的有用格式收集和捕获数据。原型和测试。构建一个模型或一组模型来解决问题,测试它们的执行情况并迭代,直到一个模型产生令人满意的结果。商业化。稳定和扩展模型以及数据收集和处理,以在生产中产生有用的输出。构思阶段的目标是使模型解决的关键问题、目标函数和基础输入与整个模型保持一致。与问题保持一致。如前所述,机器学习可用于解决实际业务问题。确保您的团队和公司的所有利益相关者都同意您要解决的问题以及您将如何使用该解决方案。选择一个目标函数。要解决的问题决定了模型的目标是什么。模型试图预测的目标函数是什么?您在寻找数据中的模式吗?例如,根据某些特征将一组照片分组。定义质量指标。你如何衡量模型的质量?在没有看到实际结果的情况下通常很难预见可接受的质量,但目标的方向性有助于此。头脑风暴所有可能的输入。您的目标是确定哪些数据可以帮助您解决问题或做出决定。最有帮助的问题是:“专家将如何处理这个问题”。考虑解决方案将基于哪些变量或数据。是否应该测试每一个可能影响人类判断的因素。请尽可能广泛地收集这些问题的答案。理解关键因素可能需要业务方面的专业知识,这也是业务或产品人员需要在这个阶段频繁参与的重要原因之一。数据团队必须将这些潜在输入转换为模型特征。请注意,为了将输入转换为特征,可能需要进行额外的处理,我们将在稍后详细讨论。数据准备此阶段的目标是收集原始数据并将其用作原型模型的输入。您可能需要对原始数据执行复杂的转换以使其成为输入数据。例如,假设您的特征之一是消费者对某个品牌的看法:您首先需要找到消费者谈论该品牌的相关来源。如果品牌名称包含常用词(例如“苹果”),则需要先将品牌名称与其一般含义(与水果相关)区分开来,然后再通过情感分析模型运行它,这一切都在构建原型之前完成。并非所有功能的构建都很复杂,但有些功能可能需要大量工作。让我们仔细看看这个阶段需要做什么:尽快收集数据。首先,确定缺少哪些数据。在某些情况下,您可能需要将必要的输入分解到“构建块”级别,或者分解到代理级别,以便更方便地获取数据。确定缺少哪些数据后,找到获取它的最快和最简单的方法。对于不可扩展的方法,例如手动下载或购买数据样本,这可能是最实用的方法,即使它有些昂贵。在这个阶段收集太多的数据通常没有多大意义,因为你不知道数据是否有用,哪种格式最好等等。业务人员应该参与这个阶段,因为他们可以协助数据专家从大量来源获取不容易获取的数据。请注意,在监督学习算法中,您不仅需要模型特征的数据,还需要模型目标函数的数据点来训练、验证和测试模型。回到房价的例子,为了建立预测房价的模型,你需要一些包含房价的房屋信息!数据清理和规范化。在此阶段,数据科学或工程团队将承担主要工作职责。他们将大部分精力投入到将想法和原始数据转化为实际模型。需要对数据集进行检查和清洗,避免使用不良数据、不相关的异常值等。同时,数据也可能在不同的规模上进行转换,以便更容易与其他数据集对齐并一起使用。特别是在处理文本和图像时,通常需要对数据进行预处理以提取相关信息。例如,插入太多对于模型而言太大的图像可能会导致需要处理的信息过多,因此您可能需要降低图像质量、使用图像的一部分或仅使用对象轮廓。对于文本,您可能需要检测与文本相关的实体、执行意见分析、查找常见的n-gram(通常用于表示一定数量的单词的序列)或执行各种其他转换。这些通常由现成的库实现,而无需重新发明轮子。原型制作和测试此阶段的目标是获得模型的原型,对其进行测试和迭代,直到获得足以用于生产的模型。构建原型。准备好数据后,数据科学团队就可以开始研究实际模型。这个阶段涉及很多实验,比如选择最相关的特征,测试多种算法等。这不是一件容易的事,获得用于生产的模型也不是一件容易的事情。验证和测试原型。在这个阶段,数据科学家的工作是确保生成的模型尽可能好。他们将根据预定义的质量指标评估模型的性能,比较模型在不同算法下的性能,调整各种参数并对最终模型进行性能测试。对于监督学习,你需要判断模型预测的结果是否能满足你的需求。对于无监督学习,有多种不同的性能评估技术,具体取决于问题。以聚类为例,您可以轻松绘制沿多个维度聚类的对象。如果算法使用关键字来标记文档,那么关键字有意义吗?是否存在标记失败或重要用例丢失的明显差距?这不能替代更科学的方法,但在实践中有助于快速改进。迭代。此时,您需要与团队一起决定是否需要进一步的迭代。该模型与您的期望相符的程度如何?它的表现是否足以让您当前的业务状况显着改善?有没有特别薄弱的地方?是否需要更多数据点?你能想到其他功能来提高性能吗?是否有替代数据源可以提高模型输入的质量?等等,这些都需要集思广益。产品化当原型模型很好地解决了业务问题以投入生产时,您就达到了这个阶段。请注意,如果您还没有准备好进行全面生产,您需要首先确定模型的规模。比如一个电影推荐工具:你可能先为一小部分用户提供推荐服务,然后为每个用户提供完整的用户体验。在这种情况下,模型必须基于每个用户与数据库的相关性。对每部电影进行排序。这是与仅推荐动作片不同的扩展要求。现在,让我们探讨有关将模型投入生产的更多技术细节:增加数据覆盖率。在许多情况下,您可以使用比生产中更少和更有限的数据来构建原型。例如,您可以根据特定客户构建原型,然后将其扩展到整个客户群。扩大数据收集。一旦您验证了哪些数据对您的模型有用,您就需要构建一种可扩展的方式来收集和摄取数据。在原型制作阶段,手动收集数据很好,但对于生产,您应该尽可能自动化。刷新数据。创建一种随时间刷新数据的机制,以更新现有值或添加新信息。除非由于某种原因无法保留历史数据,否则系统应该以某种方式不断积累更多数据。扩展模型。这包括数据科学和工程。从数据科学的角度来看,如果你改变了底层数据,比如增加客户群的数量,你需要重新训练和测试模型。在特定数据集上运行良好的模型可能不一定适用于更广泛或不同的数据集。在架构上,模型需要能够随着数据的增长及时扩展以更频繁地运行。在电影推荐的例子中,可能有更多的用户、更多的电影以及更多关于每个用户偏好的信息。检查特殊值。虽然一个模型总体上可以很好地扩展,但在一些小但重要的情况下它可能不起作用。例如,电影推荐的平均使用率可能还不错,但是对于父母来说,如果他们使用他们的帐户为他们的孩子选择电影,推荐系统就会显示孩子的电影。这是一个产品设计问题,您需要在产品中将给父母自己的建议与给孩子的建议分开,但是,这不是模型可以告诉您的。到目前为止,我所描述的是一个概念流程。实际上,界线通常是模糊的,您经常需要在各个阶段之间来回切换。你可能对数据供应不满意,考虑重新开始,或者模型商业化后,发现模型效果不佳,不得不回去重建原型。