如何选择适合您的机器学习算法

2020-07-22 02:16:20

为什么有这么多机器学习技术?问题是不同的算法可以解决不同的问题。您获得的结果直接取决于您选择的模型。这就是为什么知道如何将机器学习算法与特定问题相匹配是如此重要的原因。

在这篇文章中,我们将讨论这一点。我们开始吧。

首先,要为您的项目选择算法,您需要知道存在哪些类型的算法。让我们复习一下你的不同分类知识。

在监督学习的情况下,机器需要一位教育它们的老师。在这种情况下,机器学习专家收集一组数据并对其进行标记。然后,他们需要将训练集和规则传递给机器。下一步是观察机器是如何处理测试数据的。如果有一些错误,程序员会纠正它们,并重复该操作,直到算法准确工作。

这种类型的机器学习不需要教育者。计算机被给予一组未标记的数据。它应该自己找到模式并提出洞察力。人们还可以通过提供一组带标签的训练数据来稍微引导机器沿着这个过程进行。在这种情况下,它被称为半监督学习。

强化学习发生在计算机需要操作的环境中。环境扮演着老师的角色,为机器提供积极或消极的反馈,这就是所谓的强化。

另一种将技术分组的方法是基于它们解决的问题。

在本节中,我们将讨论分类、回归、优化和其他算法组。我们还将看看它们在行业中的使用情况。我们之前也写过关于机器学习算法分类的文章。

以下是最流行的ML算法。有时他们属于不止一个小组,因为他们能有效地解决不止一个问题。

分类帮助我们处理广泛的问题。它可以让我们做出更明智的决定,分类垃圾邮件,预测借款人是否会归还贷款,或者在Facebook图片中标记朋友。

这些算法预测离散变量标签。离散变量具有可计数的可能值,并且可以分类。预测的准确性取决于您选择的模型。

想象一下,你开发了一种算法,可以预测一个人是否患有癌症。在这种情况下,您选择的模型在预测结果时应该非常精确。

有时候你需要把东西分成几个类别,但是你不知道这些类别是什么。分类使用预定义的类来指定给对象。

另一方面,群集允许您识别对象之间的相似性,并根据它们的共同特征对它们进行分组。这是检测欺诈、分析文档、对客户端进行分组等操作背后的机制。聚类在销售和市场营销中被广泛应用于客户细分和个性化交流。

K-NN、k-Means聚类、决策树和随机森林都可以用于聚类任务。

试图找出两个或多个连续变量之间的关系是一个典型的回归任务。

注意:如果一个变量可以取其最小值和最大值之间的任意值,则它称为连续变量。

这项任务的一个例子是根据房价的大小和位置预测房价。在这种情况下,房价是一个连续的数值变量。

线性回归是该领域最常用的算法。当需要对两个以上变量之间的关系建模时,可以使用多元回归算法、岭回归和套索回归。

机器学习软件使您能够在几乎任何领域提供数据驱动的持续改进方法。您可以应用产品使用情况分析,以发现新产品功能如何影响需求。配备了经验数据的复杂软件有助于发现无效的措施,使您可以避免做出不成功的决定。

例如,可以使用异构制造控制系统来提高动态制造系统的适应和自我管理的能力。机器学习技术实时发现各种情况下的最佳行为-这导致了系统的不断改进。

金融机构每年因欺诈而损失约5%的收入。通过基于历史交易、社交网络信息和其他数据源构建模型,有可能在为时已晚之前发现异常。这有助于实时检测和防止欺诈性交易,即使是对于以前未知的欺诈类型也是如此。

您可以应用机器学习来构建排名模型。机器学习排名(MLR)通常涉及监督、半监督或强化算法的应用。排名任务的一个例子是像Google的SearchWiki这样的搜索引擎系统。

推荐系统向用户提供有价值的建议。这种方法给用户带来了实用性,也让公司受益,因为它激励了他们的客户购买更多或探索更多内容。

项目根据其相关性进行排序。向用户显示最相关的内容。相关性是基于历史数据确定的。如果你在YouTube或Netflix上看过任何东西,你就知道它是怎么工作的。这些系统为您提供了与您已经观看过的视频相似的视频。

你如何为你的问题找到最好的机器学习算法?您可以使用三种基本方法。

如果您有一组已标记的数据或可以准备这样一组数据,那么这就是有监督学习的领域。

如果你仍然需要定义一个结构,那就是一个无监督的学习问题。

如果需要模型与环境进行交互,则需要应用强化学习算法。

如果模型的输出是一个数字,则这是一个回归问题。

如果模型的输出是一个类,并且预期的类数是已知的,则这是一个分类问题。

如果模型的输出是一个类,但预期的类数是未知的,则这是一个聚类问题

如果您希望系统根据操作历史提供选项,这是一个推荐问题。

选择算法的过程并不局限于对问题进行分类。您还需要仔细查看您的数据,因为它在为问题选择正确的算法方面起着重要作用。

对于较小的样本集,一些算法可以正常工作,而另一些算法需要大量的样本数。某些算法适用于分类数据,而其他算法仅适用于数字输入。

处理:数据处理的组件包括预处理、分析、清理和从不同的内部和外部源收集数据。

功能工程:您需要将原始数据转换为能够向预测模型表示潜在问题的功能。它有助于提高准确性,更快地获得预期结果。

算法的选择是一项综合性的工作,需要对各种因素进行分析。

有时候问题太复杂了,你不知道从哪里开始。不止一种模式看起来很适合,很难预测哪一种会被证明是最有效的。在这种情况下,您可以测试几个模型并对其进行评估。

设置一个机器学习管道。它将根据您的评估标准比较每个算法在数据集上的性能。另一种方法是将数据划分为子集,并对不同的组使用相同的算法。最好的解决方案是只执行一次,或者让服务在添加新数据时每隔一段时间运行一次。

最后,ML今天必须解决的大多数任务都可以在神经网络的帮助下解决。因此,选择ML模型的最后一种方法就是始终选择人工神经网络。

然而,这些型号昂贵且耗时,这也是其他型号仍然存在的原因。神经网络需要极大的数据库才能准确。其他类型的ML技术可能不是通用的,但即使在处理小数据集时也能有效地解决分配的任务。

此外,它们往往过大,也很难解释-神经网络基本上是黑匣子,研究人员不知道里面发生了什么。

因此,如果你的预算很小,数据样本很少,或者渴望获得容易理解的有价值的见解,NNS不适合你。

您的结果取决于您是否成功地选择并构建了一个成功的ML模型。如果您心中有一个机器学习项目,并且正在寻找解决方案,Serokell的开发人员可以帮助您构建并实现适合您业务目标的机器学习模型。