【干货】对于回归问题,我们该怎样选择合适的机器学习算法

【导读】机器学习算法往往各自具有优缺点,没有哪一种算法可以适合所有的问题。因此,理解常用机器学习算法的原理和优缺点能帮助我们针对不同的问题“对症下药”,找到特定问题的最好算法。本文分别介绍:线性回归和多项式回归、神经网络、决策树和决策森林,并分别列出了其各自优缺点,相信有助于指导我们在特定工作中选择合适的算法。

Selecting the best Machine Learning algorithm for your regression problem

为你的回归问题选择最佳的机器学习算法

当处理机器学习(ML)的问题时,可以选择许多不同的算法。在机器学习中,有一种叫做“没有免费的午餐”的定理,即没有任何一种ML算法在处理所有问题的时候都适合。不同ML算法的性能很大程度上取决于数据的大小和结构。因此,除非我们就事论事地评估算法的错误率,否则很难找到最好的算法。

每种ML算法都有优点和缺点, 了解它们 可以指导我们去选择最合适我们问题的算法。下面我们将看看几个典型的解决回归问题的ML算法,并根据它们的优缺点为它们设置一些使用准则。

线性和多项式回归



从简单情况开始,单变量线性回归是一种使用线性模型来模拟单个输入自变量(特征变量)和输出因变量之间的关系的技术。更一般的情况是多变量线性回归,它刻画多个独立输入变量(特征变量)与输出因变量之间的关系。该模型保持线性,因此输出是输入变量的线性组合。

第三种最常见的模型是多项式回归,它 为特征变量的非线性组合构建模型,即可以存在指数变量,正弦和余弦等。然而,这需要知道输入与输出是什么关系。回归模型可以使用随机梯度下降(SGD)进行训练。

优点:

• 建模快速且特别有用,尤其是当建模关系不是非常复杂并且数据量小时。

• 线性回归很容易理解,这对商业决策可能非常有价值。

缺点:

• 对于非线性数据,多项式回归很难设计,因为必须具有关于数据结构和特征变量之间关系的一些信息。

• 由于上述原因,当涉及到高度复杂的数据时,这些模型不如其他模型。

神经网络



神经网络由一组相互连接的节点组成,这些节点称为神经元。来自数据的输入特征变量作为多变量线性组合被传递给这些神经元,其中乘以每个特征变量的值被称为权重。然后将非线性函数将会作用于这些线性组合,从而为神经网络提供建模复杂非线性关系的能力。神经网络可以有多层,其中一层的输出以相同的方式传递给下一层。在输出端,通常不会施加非线性变换。神经网络使用随机梯度下降(SGD)和反向传播算法进行训练。

优点:

• 由于神经网络可以具有很多非线性关系的层,所以它们在建模非常复杂的非线性关系时非常有效。

• 我们通常不必担心神经网络中的数据结构,它们在学习几乎任何类型的特征变量关系时都非常灵活。

• 研究表明,只要为网络提供大量的训练数据,无论是全新的还是简单增加原始数据集,都会提高网络性能。

缺点:

• 模型的复杂性导致它们不容易解释和理解。

• 训练起来非常具有挑战性, 计算强度大,需要仔细调整超参数并设置学习速率时间表。

• 他们需要大量数据才能实现高性能,并且在“小数据”情况下通常不如其他的ML算法。

回归树和随机森林



决策树是一种直观的模型,你可以遍历树的节点, 从上往下走, 当遇到分叉的时候,决策选择去哪个分支。测试时决策树, 你可以将一组训练实例作为输入,确定哪些属性最适合分割,然后按照这些属性去分割数据集,并在分割数据集上循环上述操作,直到对所有训练实例进行分类为止。在训练决策树时,我们的目标是分割那些能够使数据的两个分支都高度纯净度的属性,并尽量减少为了对数据集中的所有实例进行分类而需要进行的分割次数。纯净度是通过信息增益来衡量的。在实践中,一般是通过计算熵, 或者基尼系数。

随机森林只是决策树的集合。输入向量通过多个决策树运行。对于回归,需要求所有树的输出平均值;对于分类,直接使用投票来确定最终的类别。

优点:

• 擅长学习复杂的高度非线性关系。它们通常可以实现相当高的性能,性能优于多项式回归,通常与神经网络相当。

• 非常容易解释和理解。虽然最终的训练模型可以学习复杂的关系,但是在训练过程中建立的决策边界很容易理解。

缺点:

• 由于决策树的性质,它很容易出现过拟合。完整的决策树模型太过复杂甚至包含不必要的结构。即使通过剪枝和使用随机森林。

• 使用较大的随机森林来在获得更高性能的同时, 需要占用更多内存, 而且更加耗时

参考文献

https://towardsdatascience.com/selecting-the-best-machine-learning-algorithm-for-your-regression-problem-20c330bad4ef

原文发布于微信公众号 - 专知(Quan_Zhuanzhi)

原文发表时间:2018-03-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏新智元

【计算机视觉必读干货】图像分类、定位、检测,语义分割和实例分割方法梳理

作者:张皓 【新智元导读】本文作者来自南京大学计算机系机器学习与数据挖掘所(LAMDA),本文直观系统地梳理了深度学习在计算机视觉领域四大基本任务中的应用,包括...

6286
来自专栏SnailTyan

YOLO,You Only Look Once论文翻译——中英文对照

You Only Look Once: Unified, Real-Time Object Detection Abstract We present YOLO...

3310
来自专栏SIGAI学习与实践平台

机器学习与深度学习常见面试题(上)

一年一度的校园招聘已经开始了,为了帮助参加校园招聘、社招的同学更好的准备面试,SIGAI整理出了一些常见的机器学习、深度学习面试题。理解它们,对你通过技术面试非...

3271
来自专栏机器学习算法工程师

机器学习中的数据不平衡解决方案大全

在机器学习任务中,我们经常会遇到这种困扰:数据不平衡问题。 数据不平衡问题主要存在于有监督机器学习任务中。当遇到不平衡数据时,以总体分类准确率为学...

2584
来自专栏机器之心

入门 | 区分识别机器学习中的分类与回归

3115
来自专栏人工智能头条

从CNN视角看在自然语言处理上的应用

3463
来自专栏决胜机器学习

神经网络和深度学习(四) ——浅层神经网络的激活函数与反向传播

神经网络和深度学习(四)——浅层神经网络的激活函数与反向传播 (原创内容,转载请注明来源,谢谢) 一、神经网络的表示 复习一下神经网络的表示,其主要是将单层...

5804
来自专栏PPV课数据科学社区

【计算机视觉必读干货】图像分类、定位、检测,语义分割和实例分割方法梳理

【导读】本文作者来自南京大学计算机系机器学习与数据挖掘所(LAMDA),本文直观系统地梳理了深度学习在计算机视觉领域四大基本任务中的应用,包括图像分类、定位、检...

3028
来自专栏小鹏的专栏

YOLO

YOLO核心思想:从R-CNN到Fast R-CNN一直采用的思路是proposal+分类 (proposal 提供位置信息, 分类提供类别信息)精度已经很高,...

4246
来自专栏机器学习原理

机器学习(10)——线性SVM

支持向量机 Support vecor machine,SVM)本身是一个二元分类算法,是对感知器算法模型的一种扩展,现在的SVM算法支持线性分类和非线性分类的...

38010

扫码关注云+社区

领取腾讯云代金券