65.9K
CodeProject 正在变化。 阅读更多。
Home

机器学习流程和场景

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.80/5 (19投票s)

2017年5月31日

CPOL

9分钟阅读

viewsIcon

27348

downloadIcon

294

这是本系列的第二篇文章,将主要关注机器学习流程和场景。

目录

引言

机器学习中的事物会反复发生。因此,机器学习本质上是迭代的。要了解机器学习,必须理解机器学习流程。机器学习流程有点棘手且充满挑战。我们很少发现机器学习流程是容易的。之所以如此复杂,原因很明显,这个过程涉及到大量复杂的数据,而我们要从中找出有意义的预测模式和模型。这就是为什么,正如我在上一篇文章中提到的,这由数据科学家来处理,他们是这个领域的专家。在我上一篇文章中,我也提到了机器学习流程可以多么有益。这个过程可能带来巨大的好处,但我们也应该记住,这个过程并非总是成功,也可能失败,但这非常罕见。在这篇文章中,我们将重点关注机器学习中使用的流程和场景。

系列

我们将尝试以系列的形式涵盖主题和机器学习概念、流程和场景,包括术语。这是本系列的第二篇文章,将主要关注机器学习流程和场景。以下是我们为了解机器学习将要遵循的文章:

  1. 机器学习入门
  2. 机器学习流程和场景
  3. 机器学习:深入研究

确立需求基线

在机器学习中,提出正确的问题并知道正确答案很重要。我们应该知道要问什么问题,这是流程中最重要的部分。之后,我们应该问自己是否有足够(且正确)的数据来回答这个问题。如果你问错了问题,或者你没有足够或正确的数据,那么你得到答案将永远不会是你期望的、真正想要的。例如,考虑网上银行交易欺诈。我们问:“我们如何预测交易将是欺诈性的?”也许预测数据很大程度上基于客户居住在哪个城市,或者他的职业/业务是什么,或者他住在现住址多久了。

我们可能没有所有这些完整的数据,甚至可能直到稍后才能获得这些数据。在这种情况下,我们应该问自己,我们是否有足够的数据开始(至少有正确的数据)?如果没有,那么我们就无法从机器学习流程中获得我们想要的.结果或答案。我们还应该问自己,成功的标准是什么。最终,我们只能从数据中获得一个模型,该模型进行预测,而不是给出确切的答案。所以我们应该问,这些预测需要好到什么程度才能将整个过程标记为成功。就我们的例子而言,如果我们发现我们在 20 个案例中有 16 个案例确定了欺诈预测,那么这是否足够公平?或者 14 个案例呢?还是应该是 18 个案例?我们如何决定?了解这些问题的正确答案确实很重要,因为没有它,我们就无法获得理想的结果,也永远不会知道流程已经完成,我们已经得到了实际的预测模型。

机器学习:流程

如果我们深入了解机器学习流程的细节,首先我们要识别、选择并获取我们想要处理的数据。就我们的例子而言,我们通常需要与该领域的领域专家合作,这些人非常了解欺诈交易,或者我们将与这些人合作解决我们实际需要解决的问题。这些人是专家,知道我们从流程中获得的数据或数据模型具有预测性。但由于我们开始时的数据是原始的,非结构化的数据永远不会是实际处理所需的正确形式。它可能包含重复数据,或缺失数据,或者包含大量不需要的额外数据。数据可能来自各种来源,最终也可能成为重复或冗余数据。在这种情况下,就需要对数据进行预处理,以便流程能够理解数据,而机器学习产品通常提供一些数据预处理模块来处理原始或非结构化数据。例如,在资本市场中,总有对金融工具或股票/资产价格进行预测的需求,并且会有一个算法应用于来自各种数据提供商的大量非结构化数据,在这种情况下,多个数据提供商可能会提供相同的数据,或者一些数据提供商可能提供缺失的数据,而另一些提供完整的数据。因此,要将实际算法应用于数据,我们需要将完整的非结构化数据转化为结构化和成型的数据,这需要一个预处理的过程,通过这个过程,数据被传递,我们得到一个候选数据副本,该副本可以被算法处理以获得实际的黄金副本。

数据预处理后,我们会得到一些良好的结构化数据,这些数据现在是机器学习的输入。这只是一个一次性工作吗?当然不是,这个过程必须是迭代的,并且必须迭代,直到数据可用。在机器学习中,大部分时间都花在这个过程中。也就是说,处理数据以使其结构化、干净、准备好并可用。一旦数据可用,就可以将算法应用于数据。机器学习产品不仅提供预处理工具,还提供大量机器学习算法。应用算法到数据的结果是一个模型,但现在的问题是,这是我们需要的最终模型吗?

不,这是我们获得的候选模型。候选模型是指我们获得的最合适的第一个模型,但仍需要进行调整。但我们只得到一个候选模型吗?当然不是,因为这是一个迭代过程,在我们通过迭代过程一次又一次地产生几个候选模型之前,我们实际上并不知道哪个是最佳候选模型。我们这样做,直到我们得到一个足够好的模型可以部署。一旦模型部署,应用程序就开始利用它,所以在小的层面上和最大的层面上都有迭代。

我们需要一遍又一遍地重复整个过程,并定期重新创建模型。这个过程的原因很简单,因为场景和因素在变化,我们需要让我们的模型始终保持最新和真实。这最终也可能意味着处理新数据或应用全新的算法。

机器学习:场景

让我们来看几个展示我们如何实际使用机器学习的场景。

欺诈性网上银行交易

让我们再次以欺诈性网上银行交易为例。假设我们有一定数量的银行客户使用他们的网上银行设施进行第三方支付应用程序或网关。在这种情况下,应该有一个点,如果交易是欺诈性的,应该被拒绝。这就是找出欺诈性交易的挑战。

在这种情况下,我们可以获取所有历史交易数据,并通过我们 earlier section 中看到的机器学习流程进行处理,最终得到一个预测模型,应用程序可以使用该模型来做出决策。

预测客户

另一个例子是找出客户转向竞争对手的可能性。以互联网数据提供商或手机公司为例。在这个领域,客户通常会致电呼叫中心。对于每个客户,呼叫中心员工都需要确定客户转向竞争对手的可能性。了解这一点后,呼叫中心主管就可以提供更好的交易或提供一些有利可图的交易,以防止客户流失并留住他。挑战是如何识别这些客户,答案仍然是机器学习。数据提供商或手机公司通常有大量的通话记录数据。数据可能非常庞大且详细,因此可以围绕这些数据创建一个应用程序来整合它们。创建的应用程序可以使用 Spark 或 Hadoop 或任何其他大数据技术。

然后,公司可能需要将整合的数据与更多数据(如来自 CRM 的数据)相关联,以真正创建机器学习想要的足够多的正确数据。这并不少见。机器学习流程可以从多个来源获取数据进行处理。结果是,将有一个预测模型,呼叫中心的应用程序可以使用该模型来做出关于客户转向可能性的决策和预测。它确实为业务增加了价值,并有助于整体增长。

结论

这一切都始于提出正确的问题,这是机器学习流程的开端。之后,我们需要正确且结构化的数据来回答这个问题,而这部分占用了完成机器学习过程的大部分时间。然后开始一个有 n 次迭代的过程,直到我们得到一个期望的预测模型。该模型会随着时间的推移而更新,以适应定期发生的变化,最后模型会被部署。在下一篇文章中,我们将重点关注一些术语,并更详细地研究机器学习流程。

参考文献

  • R-Project
  • Pluralsight 课程 - 理解机器学习
© . All rights reserved.