通过这篇文章,大家将对监督学习中最流行的机器学习算法以及它们之间的关系有进一步理解。


随着机器学习算法不断涌现,纷繁复杂的算法名让人眼花缭乱,但只要抓住命名的核心,即可轻松了解算法本质及其使用场景。


接下来,我们引入两种思考与分类,帮你更快地掌握认识他们。


  1. 按学习风格对算法进行分组;

  2. 通过算法在形式或功能上的相似性进行分组(例如将相似的动物分组在一起)。


以下为通过相似性对算法进行分组,带你了解各种不同的算法类型。


一、按学习风格分组的算法


算法可以通过不同的方式对问题进行建模,一般是根据问题与经验、环境的交互或我们想要调用的输入数据。需要注意的是在人工智能教科书中首先考虑算法可采用的学习方式,我们将在此处通过一些算法示例和适合的问题类型来介绍这几种学习方式。


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


机器学习算法中的三种不同的学习风格:


1.监督学习

        

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


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


示例场景包括:

  • 分类和回归;

  • 逻辑回归和反向传播神经网络。


2.无监督学习

    

输入数据没有标记,也没有已知结果。通过推断输入数据中存在的结构来准备模型。这可能是为了提取一般规则。可能是通过数学过程来系统地减少冗余,也可能是通过相似性来组织数据。


示例场景包括:聚类、降维和关联规则学习。

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


3.半监督学习

        

        

输入数据是标记和未标记示例的混合。有一个期望的预测问题,但模型必须学习结构来组织数据并进行预测。


示例场景包括:分类和回归。


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


机器学习算法概述


在处理数据以对业务决策建模时,我们通常情况使用监督和无监督两种学习方法。但目前半监督学习方法非常热门,在图像分类等领域有大量数据集和很少的标记示例。


二、按相似性分组的算法


算法通常按其功能(它们的工作方式)的相似性进行分组。例如,基于树的方法和神经网络启发的方法。我认为这是对算法进行分组的最有用的方法,也是我们将在此处使用的方法。


这是一种有用的分组方法,但并不完美。仍然有一些算法可以很容易地适应多个类别,例如学习矢量量化,它既是一种受神经网络启发的方法,也是一种基于实例的方法。还有一些具有相同名称的类别来描述问题和算法,例如回归和聚类。我们可以通过多次列出算法或选择主观上“最”适合的组来处理这些情况。


在本节中,我们列出了许多流行的机器学习算法,并按照我们认为最直观的方式进行分组。


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


1.回归算法

          

      

回归涉及对变量之间的关系进行建模,该关系使用模型预测中的误差度量进行迭代细化。回归方法是统计学的主力,并已被纳入统计机器学习。这可能会令人困惑,因为我们可以使用回归来指代问题类别和算法类别。实际上,回归是一个过程。


最流行的回归算法是:

  • 普通最小二乘回归 (OLSR)
  • 线性回归(Linear Regression)
  • 逻辑回归(Logistic Regression)
  • 逐步回归(Stepwise Regression)
  • 多元自适应回归样条 (MARS)
  • 本地散点平滑估计 (LOESS)


2.基于实例的算法

                

基于实例的学习模型是一个决策问题,其中包含被认为对模型重要或需要的训练数据的实例或示例。此类方法通常建立示例数据的数据库,并使用相似性度量将新数据与数据库进行比较,以便找到最佳匹配并进行预测。出于这个原因,基于实例的方法也被称为赢家通吃的方法和基于记忆的学习。重点放在存储实例的表示和实例之间使用的相似性度量上。


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

  • k-最近邻 (kNN)
  • 学习矢量量化 (LVQ)
  • 自组织映射 (SOM)
  • 局部加权学习 (LWL)
  • 支持向量机 (SVM)


3.正则化算法

         

       

正则化方法对另一种方法(通常是回归方法)进行的扩展,该方法根据模型的复杂性对模型进行惩罚,有利于更易于泛化的简单模型。我在这里单独列出了正则化算法,因为它们很流行、功能强大并且通常对其他方法进行了简单的修改。


最流行的正则化算法是:

  • 岭回归(Ridge Regression)
  • LASSO(Least Absolute Shrinkage and Selection Operator)
  • 弹性网络(Elastic Net)
  • 最小角回归 (LARS)


4.决策树算法

       

         

决策树方法根据数据中属性的实际值构建决策模型。决策在树结构中分叉,直到对给定记录做出预测决策。决策树是针对分类和回归问题的数据进行训练的。决策树通常快速准确,是机器学习中的一大热门。


最流行的决策树算法是:

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


5.贝叶斯算法

         

       

贝叶斯方法是将贝叶斯定理明确应用于分类和回归等问题的方法。


最流行的贝叶斯算法是:

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


6.聚类算法

       

         

聚类与回归一样,描述了问题的类别和方法的类别。聚类方法通常由建模方法组织,例如基于质心的和分层的。所有方法都涉及使用数据中的固有结构来最好地将数据组织成具有最大共性的组。


最流行的聚类算法是:

  • k-Means
  • k-Medians
  • 期望最大化 (EM)
  • 层次聚类


7.关联规则学习算法

       

         

关联规则学习方法提取最能解释观察到的数据变量之间关系的规则。这些规则可以在组织能利用的大型多维数据集中发现重要的关联。


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

  • Apriori算法
  • 等价类变换算法(Eclat)


8.人工神经网络算法

       

         

人工神经网络是受生物神经网络结构和/或功能启发的模型。它们是一类通常用于回归和分类问题的模式匹配,但实际上是一个巨大的子领域,由数百种算法和各种问题类型的变体组成。


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


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

  • 感知器
  • 多层感知器 (MLP)
  • 反向传播
  • 随机梯度下降
  • 霍普菲尔德神经网络(Hopfield neural network)
  • 径向基函数网络 (RBFN)


9.深度学习算法

       

         

深度学习方法是对利用大量廉价计算的人工神经网络进行的现代更新。他们关注构建更大、更复杂的神经网络,正如上面的评论,许多方法都关注非常大的标记模拟数据数据集,例如图像、文本、音频和视频。


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

  • 卷积神经网络 (CNN)
  • 循环神经网络 (RNN)
  • 长短期记忆网络 (LSTM)
  • 堆叠自编码器(SAE)
  • 深度玻尔兹曼机 (DBM)
  • 深度置信网络 (DBN)


10.降维算法

       

         

与聚类方法一样,降维寻求和利用数据中的内在结构,但在这种情况下,以无监督的方式或顺序使用较少的信息来总结或描述数据。这对于可视化维度数据或简化数据很有用,然后可以在监督学习方法中使用这些数据。以上方法大多适用于分类和回归。


  • 主成分分析 (PCA)
  • 主成分回归 (PCR)
  • 偏最小二乘回归 (PLSR)
  • Sammon映射
  • 多维尺度变换 (MDS)
  • 投影寻踪模型(Projection Pursuit)
  • 线性判别分析 (LDA)
  • 混合判别分析 (MDA)
  • 二次判别分析 (QDA)
  • 灵活判别分析 (FDA)


11.集成算法

       

         

集成方法由多个独立训练的较弱模型所组成,它们的预测以某种方式组合以进行整体预测。在组合哪些类型的弱学习器以及组合它们的方式方面投入了大量精力。这是一类非常强大的技术,因此非常受欢迎。


  • Boosting
  • 自举汇聚法(Bagging)
  • AdaBoost
  • 加权平均(Blending)
  • 堆叠泛化(Stacking)
  • 梯度提升机 (GBM)
  • 梯度提升回归树 (GBRT)
  • 随机森林
  • XGBoost
  • LightGBM
  • CatBoost


三、其他机器学习算法


本文中还有许多机器学习算法没有被涵盖。


1.机器学习过程中专业任务的算法:

  • 特征选择算法
  • 算法精度评估
  • 表现措施
  • 优化算法


2.机器学习专业子领域的算法

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