机器学习

2021-06-11(整理)机器学习任务算法分类

本文主要是介绍2021-06-11(整理)机器学习任务算法分类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

全机器学习任务算法分类

  • 使用说明
  • 人工智能的定义
  • 根据任务分类
    • 回归模型
        • 线性回归算法
        • 回归树(+集成算法)
        • SVR
        • KNN
        • 深度学习
    • 分类模型
      • 逻辑回归
      • NaiveBayes (朴素贝叶斯)
      • 分类树(+集成算法)
      • SVM
      • 深度学习
    • 聚类模型
      • k-means (K-均值)
      • GMM (高斯混合模型)
      • Affinity Propagation 聚类
      • 层次聚类(Hierarchical / Agglomerative)
      • DBSCAN
    • 降维
      • PCA主成分分析
      • LDA线性判别分析
      • LLE局部线性嵌入
      • LEP拉普拉斯特征映射
  • 根据数据样本
    • 监督学习
    • 无监督学习
    • 迁移学习
    • 强化学习
    • 深度学习
  • 根据模型线性和非线性

使用说明

注意:本文不涉及具体算法,只列出各种算法适用的任务和算法的优缺点。
本文整理了常见的机器学习算法,分别按照学习任务和数据样本的特点对机器学习算法进行分类。
最好的模型,本身是一个伪命题,任何算法提出的背后都有数学原理支撑,也有其适用和不适用的场景。更复杂模型往往会导致训练时间增长或者泛化能力下降。准确率与时间的折衷,是每一个工程都应当考虑的问题。

人工智能的定义

首先,我们回答一个问题:什么是人工智能?简单来说,人工智能就是赋予机器思考的能力。在这个定义的基础上,主要发展出了三大学派:符号学派(symbolicism)连接学派(connectionism)行为学派(actionism),各学派对于人工智能实现又有各自的观点。

根据任务分类

回归模型

回归问题输出项是连续值,针对连续输出量进行预测,在回归分析中,数据中会给出大量的自变量和相应的连续因变量,通过尝试寻找这两种变量之间的关系,就能够预测输出变量。
在实践中,回归问题使用正则化的回归树型集成方法是最好的选择。

线性回归算法

优点:线性回归的理解与解释都十分直观,还能通过正则化来降低过拟合的风险。另外,线性模型很容易使用随机梯度下降和新数据更新模型权重。
缺点:线性回归在变量是非线性关系的时候表现很差。并且其也不够灵活以捕捉更复杂的模式,添加正确的交互项或使用多项式很困难并需要大量时间。

回归树(+集成算法)

优点:天然可解释性,决策树能学习非线性关系,对异常值也具有很强的鲁棒性。集成学习在实践中表现非常好,其经常赢得许多经典的(非深度学习)机器学习竞赛。
缺点:无约束的,单棵树很容易过拟合,因为单棵树可以保留分支(不剪枝),并直到其记住了训练数据。集成方法可以削弱这一缺点的影响。

SVR

优点:SVM 能对非线性决策边界建模,并且有许多可选的核函数形式。SVM 同样面对过拟合有相当大的鲁棒性,这一点在高维空间中尤其突出。
缺点:SVM 是内存密集型算法,选择正确的核函数是很重要的,所以很难调参,也不能扩展到较大的数据集中。目前在工业界中,随机森林(一种集成算法)通常优于支持向量机算法。

KNN

KNN是指K-最近邻算法(KNN,K-NearestNeighbor),注意它和其他各种代表神经网络的NN(Neural Network)是不同的。
最近邻算法是「基于实例的」,这就意味着其需要保留每一个训练样本观察值。最近邻算法通过搜寻最相似的训练样本来预测新观察样本的值。
缺点:算法是内存密集型,对高维数据的处理效果并不是很好,并且还需要高效的距离函数来度量和计算相似度。

深度学习

优点:深度学习是目前某些领域最先进的技术,如计算机视觉和语音识别等。深度神经网络在图像、音频和文本等数据上表现优异,并且该算法也很容易对新数据使用反向传播算法更新模型参数。它们的架构(即层级的数量和结构)能够适应于多种问题,并且隐藏层也减少了算法对特征工程的依赖。
缺点:深度学习算法通常不适合作为通用目的的算法,因为其需要大量的数据。实际上,深度学习通常在经典机器学习问题上并没有集成方法表现得好。另外,其在训练上是计算密集型的,所以这就需要更富经验的人进行调参(即设置架构和超参数)以减少训练时间。

分类模型

分类问题的输出项是离散的标签,从名称可以看出,分类问题就是通过学习训练集,对测试集数据进行正确的分类,即给每一个数据贴上合适的标签。

逻辑回归

逻辑回归不是回归,实际上逻辑回归的含义在于使用回归的方法,完成分类任务
优点:输出有很好的概率解释,并且算法也能正则化而避免过拟合。Logistic 模型很容易使用随机梯度下降和新数据更新模型权重。
缺点:Logistic 回归在多条或非线性决策边界时性能比较差。

NaiveBayes (朴素贝叶斯)

优点:即使条件独立性假设很难成立,但朴素贝叶斯算法在实践中表现出乎意料地好。该算法很容易实现并能随数据集的更新而扩展。
缺点:因为朴素贝叶斯算法太简单了,所以其也经常被其他的分类算法所替代。

分类树(+集成算法)

优点:可解释性,同回归方法一样,分类树的集成方法在实践中同样表现十分优良。它们通常对异常数据具有相当的鲁棒性和可扩展性。因为它的层级结构,分类树的集成方法能很自然地对非线性决策边界建模。
缺点:不可约束,单棵树趋向于过拟合,使用集成方法可以削弱这一方面的影响。

SVM

优点:SVM 能对非线性决策边界建模,并且有许多可选的核函数形式。SVM 同样面对过拟合有相当大的鲁棒性,这一点在高维空间中尤其突出。
缺点:SVM 是内存密集型算法,选择正确的核函数是很重要的,所以其很难调参,也不能扩展到较大的数据集中。目前在工业界中,随机森林通常优于支持向量机算法。

深度学习

优点:深度学习非常适用于分类音频、文本和图像数据。
缺点:和回归问题一样,深度神经网络需要大量的数据进行训练,所以其也不是一个通用目的的算法。

聚类模型

将数据划分为有意义的小的组别(即簇),聚类是获取数据的结构信息,以及到处数据间有价值的关系的一种技术。

k-means (K-均值)

优点:K 均值聚类是最流行的聚类算法,因为该算法足够快速、简单,并且如果你的预处理数据和特征工程十分有效,那么该聚类算法将拥有令人惊叹的灵活性。
缺点:该算法需要指定集群的数量,而 K 值的选择通常都不是那么容易确定的。另外,如果训练数据中的真实集群并不是类球状的,那么 K 均值聚类会得出一些比较差的集群。

GMM (高斯混合模型)

优点:GMM在K-means的基础上增加了新的条件,因此具有更强的描述能力。
缺点:和优点相同,更加复杂的模型带来的是算法复杂度的增加。

Affinity Propagation 聚类

优点:该算法不需要指出明确的集群数量(但是需要指定「sample preference」和「damping」等超参数)。
缺点:AP 聚类算法主要的缺点就是训练速度比较慢,并需要大量内存,因此也就很难扩展到大数据集中。另外,该算法同样假定潜在的集群是类球状的。

层次聚类(Hierarchical / Agglomerative)

优点:层次聚类最主要的优点是集群不再需要假设为类球形。另外其也可以扩展到大数据集。
缺点:有点像 K 均值聚类,该算法需要设定集群的数量(即在算法完成后需要保留的层次)。

DBSCAN

优点:DBSCAN 不需要假设集群为球状,并且它的性能是可扩展的。此外,它不需要每个点都被分配到一个集群中,这降低了集群的异常数据。
缺点:用户必须要调整「epsilon」和「min_sample」这两个定义了集群密度的超参数。DBSCAN 对这些超参数非常敏感。

降维

数据降维是无监督学习的另一个子领域。常用于数据特征预处理,清除数据中的噪声。它能够在最大程度保留相关信息的情况下,将数据压缩到一个维度较小的子空间,但同时也可能会降低某些算法的准确性方面的性能。降维技术也常用在数据可视化方面。
降维主要有四大算法:PCA、LDA、LLE、LEP

PCA主成分分析

PCA是无监督降维方法,PCA的本质在于让降维后的数据样本具有最大方差。

LDA线性判别分析

LDA中最出名的是FLD(Fisher‘s’ Linear Discriminant),以至于很多时候人们习惯性地将两者划等号。
LDA是有监督的降维方法,其思想是使用分类的方式进行降维。

LLE局部线性嵌入

LLE是一种非线性降维方法
优点:可以学习任意维的局部线性的低维流形。算法归结为稀疏矩阵特征分解,计算复杂度相对较小,实现容易。
缺点:算法所学习的流形只能是不闭合的,且样本集是稠密均匀的。算法对最近邻样本数的选择敏感,不同的最近邻数对最后的降维结果有很大影响。

LEP拉普拉斯特征映射

LEP从局部的角度入手,构建数据之间的关系。

根据数据样本

监督学习

监督学习的目的是使用有类标的训练数据结构模型,我们可以使用经训练得到的模型对未来数据进行预测。一般对应回归(regression)和分类(classification)
举例:KNN、回归模型、决策树、随机森林、逻辑回归、SVM等

无监督学习

训练样本全部无标签时是无监督学习。一般对应聚类(clustering)和降维
举例:关联规则、K-means聚类算法

迁移学习

训迁移学习就是就是把已经训练好的模型参数迁移到新的模型上以帮助新模型训练。

强化学习

强化学习是一个学习最优策略(policy),可以让本体(agent)在特定环境(environment)中,根据当前状态(state),做出行动(action),从而获得最大回报(reward)
强化学习和有监督学习最大的不同是,强化学习每次的决定没有对与错(没有标签),而是希望获得最多的累计奖励。
举例:马尔可夫决策过程

深度学习

深层的神经网络

根据模型线性和非线性

线性模型较为简单,很多非线性模型都是在线性模型的基础上变换而来的。非线性模型又可以分为传统机器学习模型(SVM、KNN、决策树)和深度学习模型。

这篇关于2021-06-11(整理)机器学习任务算法分类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!