【机器学习】机器学习算法之旅

原文:https://machinelearningmastery.com/a-tour-of-machine-learning-algorithms/


在这篇文章中,我们将介绍最流行的机器学习算法。

浏览该领域的主要算法以了解可用的方法是有用的。

有很多算法可用,当算法名称被抛出时,它会感到压倒性的,并且您只需要知道它们是什么以及它们在哪里适合。

我想给你两种方法来思考和分类你可能在现场遇到的算法。

  • 首先是按学习风格的一组算法
  • 第二种是通过形式或功能相似性的算法分组(例如将相似的动物分组在一起)。

这两种方法都很有用,但我们将专注于按相似性对算法进行分组,并继续浏览各种不同的算法类型。

阅读本文后,您将更好地理解最受欢迎的监督式学习机器学习算法以及它们之间的关系。

【机器学习】机器学习算法之旅_第1张图片

最适合的线条的一个很酷的例子。弱成员是灰色的,组合预测是红色的。


按学习风格分组的算法

算法可以根据与经验或环境的交互或任何我们想要调用输入数据的不同方式对问题建模。

它首先考虑算法可以采用的学习风格,这在机器学习和人工智能教科书中很受欢迎。

算法只有少数几种主要的学习方式或学习模型,我们将在这里介绍几种适合的算法和问题类型。

这种分类或组织机器学习算法的方法非常有用,因为它会强制您考虑输入数据和模型准备过程的角色,并选择最适合您问题的方法以获得最佳结果。

让我们来看看机器学习算法中的三种不同的学习风格:

1.监督学习

输入数据称为训练数据,并且具有已知的标签或结果,例如垃圾邮件/非垃圾邮件或一次的股票价格。

模型是通过训练过程准备的,在训练过程中需要进行预测,并在预测错误时予以纠正。训练过程一直持续到模型达到培训数据所需的准确度。

示例问题是分类和回归。

示例算法包括Logistic回归和后向传播神经网络。



2.无监督学习

输入数据未标记,并且没有已知结果。

通过推导输入数据中存在的结构来准备模型。这可能是提取一般规则。它可能是通过数学过程系统地减少冗余,或者可能是通过相似性组织数据。

示例问题是聚类,降维和关联规则学习。

示例算法包括:Apriori算法和k-Means。




3.半监督学习

输入数据是标记和未标记示例的混合。

有一个理想的预测问题,但模型必须学习结构来组织数据以及做出预测。

示例问题是分类和回归。

示例算法是对其他灵活方法的扩展,这些方法对如何对未标记数据建模进行了假设。





概观

在处理数据以对业务决策建模时,您通常使用有监督和无监督的学习方法。

目前的热门话题是半监督学习方法,如图像分类中存在大量数据集且只有极少数标记示例的领域。


相似性分组算法

算法通常根据它们的功能(它们如何工作)在相似性上进行分组。例如,基于树的方法和神经网络启发的方法。

我认为这是分组算法最有用的方法,这是我们在这里使用的方法。

这是一种有用的分组方法,但并不完美。还有一些算法可以很容易地适合多个类别,例如学习矢量量化,这既是一种神经网络启发方法,也是一种基于实例的方法。还有一些类别具有相同的名称来描述问题以及算法的类别,例如回归和聚类。

我们可以通过两次列出算法或选择主观上“最佳”的组来处理这些情况。我喜欢后一种不重复算法的方法来保持简单。

在本节中,我列出了许多流行的机器学习算法,按照我认为最直观的方式分组。这个列表在组或算法中并不详尽,但我认为它是有代表性的,并且对你了解土地的位置会有帮助。

请注意:对于用于分类和回归的算法存在强烈的偏见,这是您将遇到的两个最流行的监督机器学习问题。

如果您知道未列出的算法或一组算法,请将其放入评论中并与我们分享。让我们潜入。

回归算法

回归关注模型化变量之间的关系,使用模型所做的预测中的误差度量来反复提炼。

回归方法是统计学的主力,并且已被引入统计机器学习。这可能令人困惑,因为我们可以使用回归来指代问题的类别和算法的类别。真的,回归是一个过程。

最流行的回归算法是:

  • 普通最小二乘回归(OLSR)
  • 线性回归
  • Logistic回归
  • 逐步回归
  • 多变量自适应回归样条曲线(MARS)
  • 局部估计散射平滑(LOESS)


基于实例的算法

基于实例的学习模型是一个决策问题,其中包含对模型认为重要或需要的培训数据的实例或示例。

这些方法通常建立一个示例数据的数据库,并使用相似性度量将新数据与数据库进行比较,以便找到最佳匹配并进行预测。基于这个原因,基于实例的方法也被称为赢家通吃方法和基于记忆的学习。重点放在存储实例的表示和实例之间使用的相似性度量上。

最流行的基于实例的算法是:

  • k-最近邻(kNN)
  • 学习矢量量化(LVQ)
  • 自组织映射(SOM)
  • 本地加权学习(LWL)


正则化算法

对另一种方法(通常是回归方法)进行了扩展,该方法根据其复杂性对模型进行惩罚,以利于简化模型,这些模型在泛化时也更好。

我在这里单独列出了正则化算法,因为它们是流行的,功能强大且对其他方法进行的一般简单修改。

最流行的正则化算法是:

  • 岭回归
  • 最少的绝对收缩和选择算子(LASSO)
  • 弹性网
  • 最小角度回归(LARS)


决策树算法

决策树方法根据数据中属性的实际值构建决策模型。

决策分叉树形结构,直到对给定记录做出预测决定。针对分类和回归问题的数据对决策树进行了训练。决策树通常是快速和准确的,并且是机器学习中的大热门。

最流行的决策树算法是:

  • 分类和回归树(CART)
  • 迭代二分仪3(ID3)
  • C4.5和C5.0(不同版本的强大方法)
  • 卡方自动交互检测(CHAID)
  • 决策树桩
  • M5
  • 有条件的决策树


贝叶斯算法

贝叶斯方法是那些显式应用贝叶斯定理的问题,如分类和回归。

最流行的贝叶斯算法是:

  • 朴素贝叶斯
  • 高斯朴素贝叶斯
  • 多项式朴素贝叶斯
  • 平均一依赖估计量(AODE)
  • 贝叶斯信仰网络(BBN)
  • 贝叶斯网络(BN)

聚类算法

类似回归的聚类描述了问题的类别和方法的类别。

聚类方法通常由建模方法组织,例如基于质心和分层的方法。所有的方法都与使用数据中的固有结构来最好地将数据组织成最大共同性组。

最流行的聚类算法是:

  • K-均值
  • K-中位数
  • 预期最大化(EM)
  • 分层聚类

关联规则学习算法

关联规则学习方法提取最能解释数据中变量之间观察关系的规则。

这些规则可以发现大型多维数据集中重要且商业上有用的关联,这些关联可以被组织利用。

最流行的关联规则学习算法是:

  • Apriori算法
  • Eclat算法



人工神经网络算法

人工神经网络是受生物神经网络的结构和/或功能启发的模型。

它们是一类模式匹配,通常用于回归和分类问题,但实际上是一个巨大的子域,包含数百种算法和各种问题类型的变体。

请注意,由于该领域的大规模增长和普及,我已将神经网络的深度学习分离出来。这里我们关注的是更经典的方法。

最流行的人工神经网络算法是:

  • 感知
  • 反向传播
  • Hopfield网络
  • 径向基函数网络(RBFN)

深度学习算法

深度学习方法是对人工神经网络的现代更新,它利用了丰富的廉价计算。

他们关心的是构建更大更复杂的神经网络,并且如上所述,许多方法都涉及半监督学习问题,其中大数据集包含非常少的标记数据。

最流行的深度学习算法是:

  • 深玻尔兹曼机器(DBM)
  • 深信仰网络(DBN)
  • 卷积神经网络(CNN)
  • 堆叠的自动编码器


维度降低算法

与聚类方法一样,降维也寻求和利用数据中的固有结构,但是在这种情况下,可以以无监督的方式或命令来总结或描述使用较少信息的数据。

这对于可视化尺寸数据或简化可以用于监督学习方法的数据非常有用。许多这些方法可以适用于分类和回归。

  • 主成分分析(PCA)
  • 主成分回归(PCR)
  • 偏最小二乘回归(PLSR)
  • Sammon映射
  • 多维度缩放(MDS)
  • 投影追求
  • 线性判别分析(LDA)
  • 混合判别分析(MDA)
  • 二次判别分析(QDA)
  • 灵活判别分析(FDA)


集成算法

集合方法是由多个较弱模型组成的模型,这些模型是独立训练的,其预测以某种方式进行组合以作出整体预测。

对哪些类型的弱学习者进行组合以及如何组合它们的方式付出了很大的努力。这是一种非常强大的技术,因此非常受欢迎。

  • 推进
  • 自举聚合(Bagging)
  • AdaBoost的
  • 堆叠泛化(混合)
  • 梯度提升机(GBM)
  • 梯度增强回归树(GBRT)
  • 随机森林


其他算法

许多算法没有涉及。

例如,支持矢量机器会进入哪个组?它自己的?

我没有在机器学习过程中涵盖专业任务的算法,例如:

  • 特征选择算法
  • 算法精度评估
  • 绩效评估

我也没有涵盖机器学习专业子领域的算法,例如:

  • 计算智能(进化算法等)
  • 计算机视觉(CV)
  • 自然语言处理(NLP)
  • 推荐系统
  • 强化学习
  • 图形模型
  • 和更多…

这些可能会在未来的帖子中提及

进一步阅读

这个机器学习算法的目的是为了给你一个关于如何将算法相互关联的概念和一些想法。

我已经收集了一些资源,供您继续阅读算法。如果您有任何具体问题,请留下评论。

其他算法列表

如果你有兴趣,还有其他很多算法。以下是几个手选的例子。

  • 机器学习算法列表:在Wikipedia上。虽然范围广泛,但我不觉得这个列表或者算法的组织特别有用。
  • 机器学习算法类别:同样在维基百科上,比上面的维基百科列表更有用。它按字母顺序组织算法。
  • CRAN任务视图:机器学习和统计学习:R中每个机器学习软件包支持的所有软件包和所有算法的列表。让您深入了解所发现的内容以及人们用于日常分析的内容。
  • 数据挖掘中的十大算法:已发表的文章和现在的一  本书(Affiliate Link)介绍了最流行的数据挖掘算法。另一个基础,不太压倒一切的方法,你可以去深入学习。

如何学习机器学习算法

算法是机器学习的重要组成部分。这是我在这个博客上热烈讨论和写作的主题。以下是您可能感兴趣的进一步阅读的一些手选职位。

  • 如何学习任何机器学习算法:一种系统化的方法,您可以使用“算法描述模板”(我使用这种方法编写我的第一本书来学习和理解任何机器学习算法
  • 如何创建机器学习算法的目标列表:如何创建自己的系统列表的机器学习算法,以帮助您开始研究下一个机器学习问题。
  • 如何研究机器学习算法:一种可用于研究机器学习算法的系统方法(与上面列出的模板方法协同工作)。
  • 如何调查机器学习算法行为:通过创建和执行非常小的研究来了解机器学习算法的工作方式,您可以使用这种方法来了解它们的行为。研究不仅限于学者!
  • 如何实现机器学习算法:从头开始实现机器学习算法的过程和技巧和窍门。

如何运行机器学习算法

有时你只是想潜入代码。下面是一些链接,您可以使用它们运行机器学习算法,使用标准库对其进行编码或从头开始实施。

  • 如何开始使用R中的机器学习算法:链接到本网站上的大量代码示例,演示R中的机器学习算法。
  • 机器学习算法scikit-learn中的食谱:演示如何使用scikit-learn创建预测模型的Python代码示例的集合。
  • 如何在Weka中运行您的第一个分类器:在Weka中运行您的第一个分类器的教程(无需代码!)。

你可能感兴趣的:(Machine,Learning,机器学习算法理论与实战,机器学习,机器学习算法,算法简介)