当遇到不同类型的机器学习(ML)问题时,有许多不同的算法可供选择。在机器学习中,有一种叫做“NO Free Lunch”的定理,其想表达的是意思基本上是说没有任何一种ML算法适合所有问题。不同ML算法的表现出来的性能在很大程度上取决于数据的大小和结构。因此,除非我们可以直接通过简单的试验来测试我们的算法,否则算法的正确选择往往是最困难的。
但是,每个ML算法都有一些优点和缺点,或许这会帮助到我们选择。尽管一种算法并不总是优于另一种算法,但是我们可以利用每种算法的一些特性作为快速选择正确算法并调整超参数的指导。接下来这篇文章将介绍,几个突出的ML算法如何去处理的回归问题,并根据它们的优缺点设置何时使用它们的准则。
1.线性和多项式回归
我们从最简单的情况开始,单变量线性回归是一种使用线性模型(即线)来模拟单个输入自变量(特征变量)和输出因变量之间的关系的技术。更复杂的情况是多变量线性回归,其中为多个独立输入变量(特征变量)与输出因变量之间的关系创建模型。该模型保持线性,因为输出是输入变量的线性组合。
最常见的第三种情况称为多项式回归,其中模型成为一种特征变量的非线性组合,即可以存在指数变量、正弦和余弦等。然而,这需要知道数据与输出存在着什么样的联系。回归模型可以使用随机梯度下降(SGD)进行训练。
优点:
· 当建模关系不是非常复杂并且没有太多数据需要处理时,这种建模方式是最快速且特别有用。
· 线性回归很容易理解,这对商业决策可能非常有价值。
缺点:
· 对于非线性数据,对于多项式回归的设计来说可能相当具有挑战性,因为必须具有关于数据结构和特征变量之间关系的一些信息。
· 由于上述原因,当涉及到高度复杂的数据时,这些模型不如其他模型。
2.神经网络
一个神经网络由一组相互连接的被称为神经元的节点组成,来自数据的输入特征变量作为多变量线性组合传递给这些神经元,其中乘以每个特征变量的值被称为权重。然后将非线性组合应用于该线性组合,从而为神经网络提供非线性关系的建模能力。神经网络可以有多层,其中一层的输出以相同的方式传递给下一层。在输出端,通常不会施加非线性。神经网络使用随机梯度下降(SGD)和反向传播算法(均显示在上面的GIF中)进行训练。
优点:
· 由于神经网络可以具有非线性的许多层(从而具有参数),所以它们在处理高度复杂的非线性关系时非常有效。
· 我们通常不必担心神经网络中的数据结构,因为他们在学习任何类型的特征变量关系时都非常灵活。
· 研究一直表明,仅仅为网络提供更多的训练数据,无论是全新的还是增加原始数据集,都会使网络性能受益。
缺点:
· 由于这些模型的复杂性,它们不容易解释和理解。
· 它们的训练可能是非常具有挑战性和计算密集性的,在训练的过程中需要仔细调整超参数并设置学习速率时间表。
· 他们需要大量数据才能实现高性能,并且在“小数据”情况下通常会受到其他ML算法的影响。
3.回归树和随机森林
从基本情况开始,决策树是一种直观的模型,通过一个遍历树的分支并根据节点的决策选择下一个分支下降。树的归纳法是将一组训练实例作为输入,确定哪些属性最适合分割,分割数据集,并在结果分割数据集上循环,直到对所有训练实例进行分类完成为止的任务。在构建树时,目标是分割创建可能的最纯子节点的属性,这将尽量减少为了对数据集中的所有实例进行分类而需要进行的拆分次数。纯度是通过信息增益的概念来衡量的,它涉及为了对它进行正确分类而需要知道多少先前未见的实例。
随机森林是决策树的集合。输入向量通过多个决策树运行。对于回归,所有树的输出值被平均,为了分类,使用投票方案来确定最终的类别。
优点:
·     擅长学习高度复杂的非线性关系。它们通常可以实现相当高的性能,优于多项式回归,并且性能通常与神经网络相当。
·     非常容易解释和理解。虽然最终的训练模型可以学习复杂的关系,但是在训练过程中建立的决策边界很容易理解。
缺点:
·     由于训练决策树的性质,他们可能容易出现重大过度拟合现象。完整的决策树模型可能过于复杂并且包含不必要的结构。尽管有时可以通过适当的树的修剪和较大的随机森林合奏来缓解这种情况。
·     使用较大的随机森林合奏来实现更高的性能会带来速度变慢和需要更多内存的缺点。
本文由阿里云云栖社区组织翻译。
文章原标题《selecting-the-best-machine-learning-algorithm-for-your-regression-problem》
作者:towardsdatascience
译者:虎说八道,审校:。
文章为简译,更为详细的内容,请查看原文