机器学习常见算法分类汇总,机器学习流行算法一览,参数估计方法有:梯度下降、牛顿法、拟牛顿法,损失函数有0-1损失、平方损失、绝对值损失、对数损失、合页损失、、、、、

机器学习常见算法分类汇总

  机器学习无疑是当前数据分析领域的一个热点内容。很多人在平时的工作中都或多或少会用到机器学习的算法。这里 IT 经理网为您总结一下常见的机器学习算法,以供您在工作和学习中参考。

  机器学习的算法很多。很多时候困惑人们都是,很多算法是一类算法,而有些算法又是从其他算法中延伸出来的。这里,我们从两个方面来给大家介绍,第一个方面是学习的方式,第二个方面是算法的类似性。

  学习方式

  根据数据类型的不同,对一个问题的建模有不同的方式。在机器学习或者人工智能领域,人们首先会考虑算法的学习方式。在机器学习领域,有几种主要的学习方式。将算法按照学习方式分类是一个不错的想法,这样可以让人们在建模和算法选择的时候考虑能根据输入数据来选择最合适的算法来获得最好的结果。

  监督式学习:

  

  在监督式学习下,输入数据被称为“训练数据”,每组训练数据有一个明确的标识或结果,如对防垃圾邮件系统中“垃圾邮件”“非垃圾邮件”,对手写数字识别中的“1“,”2“,”3“,”4“等。在建立预测模型的时候,监督式学习建立一个学习过程,将预测结果与“训练数据”的实际结果进行比较,不断的调整预测模型,直到模型的预测结果达到一个预期的准确率。监督式学习的常见应用场景如分类问题和回归问题。常见算法有逻辑回归(Logistic Regression)和反向传递神经网络(Back Propagation Neural Network) 

  非监督式学习:

  在非监督式学习中,数据并不被特别标识,学习模型是为了推断出数据的一些内在结构。常见的应用场景包括关联规则的学习以及聚类等。常见算法包括 Apriori 算法以及k-Means 算法。 

  半监督式学习:

  在此学习方式下,输入数据部分被标识,部分没有被标识,这种学习模型可以用来进行预测,但是模型首先需要学习数据的内在结构以便合理的组织数据来进行预测。应用场景包括分类和回归,算法包括一些对常用监督式学习算法的延伸,这些算法首先试图对未标识数据进行建模,在此基础上再对标识的数据进行预测。如图论推理算法(Graph Inference)或者拉普拉斯支持向量机(Laplacian SVM.)等。 

  强化学习:

  

  在这种学习模式下,输入数据作为对模型的反馈,不像监督模型那样,输入数据仅仅是作为一个检查模型对错的方式,在强化学习下,输入数据直接反馈到模型,模型必须对此立刻作出调整。常见的应用场景包括动态系统以及机器人控制等。常见算法包括Q-Learning 以及时间差学习(Temporal difference learning)

  在企业数据应用的场景下, 人们最常用的可能就是监督式学习和非监督式学习的模型。 在图像识别等领域,由于存在大量的非标识的数据和少量的可标识数据, 目前半监督式学习是一个很热的话题。 而强化学习更多的应用在机器人控制及其他需要进行系统控制的领域。

  算法类似性

  根据算法的功能和形式的类似性,我们可以把算法分类,比如说基于树的算法,基于神经网络的算法等等。当然,机器学习的范围非常庞大,有些算法很难明确归类到某一类。而对于有些分类来说,同一分类的算法可以针对不同类型的问题。这里,我们尽量把常用的算法按照最容易理解的方式进行分类。 

  回归算法

regression

  回归算法是试图采用对误差的衡量来探索变量之间的关系的一类算法。回归算法是统计机器学习的利器。在机器学习领域,人们说起回归,有时候是指一类问题,有时候是指一类算法,这一点常常会使初学者有所困惑。常见的回归算法包括:最小二乘法(Ordinary Least Square),逻辑回归(Logistic Regression),逐步式回归(Stepwise Regression),多元自适应回归样条(Multivariate Adaptive Regression Splines)以及本地散点平滑估计(Locally Estimated Scatterplot Smoothing) 

  基于实例的算法

  基于实例的算法常常用来对决策问题建立模型,这样的模型常常先选取一批样本数据,然后根据某些近似性把新数据与样本数据进行比较。通过这种方式来寻找最佳的匹配。因此,基于实例的算法常常也被称为“赢家通吃”学习或者“基于记忆的学习”。常见的算法包括 k-Nearest Neighbor (KNN), 学习矢量量化(Learning Vector Quantization, LVQ),以及自组织映射算法(Self-Organizing Map , SOM) 

  正则化方法

  

  正则化方法是其他算法(通常是回归算法)的延伸,根据算法的复杂度对算法进行调整。正则化方法通常对简单模型予以奖励而对复杂算法予以惩罚。常见的算法包括:Ridge Regression, Least Absolute Shrinkage and Selection Operator(LASSO),以及弹性网络(Elastic Net)。 

  决策树学习

  

  决策树算法根据数据的属性采用树状结构建立决策模型, 决策树模型常常用来解决分类和回归问题。常见的算法包括:分类及回归树(Classification And Regression Tree, CART), ID3 (Iterative Dichotomiser 3), C4.5, Chi-squared Automatic Interaction Detection (CHAID), Decision Stump, 随机森林(Random Forest), 多元自适应回归样条(MARS)以及梯度推进机(Gradient Boosting Machine, GBM) 

  贝叶斯方法

  

  贝叶斯方法算法是基于贝叶斯定理的一类算法,主要用来解决分类和回归问题。常见算法包括:朴素贝叶斯算法,平均单依赖估计(Averaged One-Dependence Estimators, AODE),以及 Bayesian Belief Network(BBN)。 

  基于核的算法

  

  基于核的算法中最著名的莫过于支持向量机(SVM)了。 基于核的算法把输入数据映射到一个高阶的向量空间, 在这些高阶向量空间里, 有些分类或者回归问题能够更容易的解决。 常见的基于核的算法包括:支持向量机(Support Vector Machine, SVM), 径向基函数(Radial Basis Function ,RBF), 以及线性判别分析(Linear Discriminate Analysis ,LDA)等。 

  聚类算法

  

  聚类,就像回归一样,有时候人们描述的是一类问题,有时候描述的是一类算法。聚类算法通常按照中心点或者分层的方式对输入数据进行归并。所以的聚类算法都试图找到数据的内在结构,以便按照最大的共同点将数据进行归类。常见的聚类算法包括 k-Means 算法以及期望最大化算法(Expectation Maximization, EM)。 

  关联规则学习

  

  关联规则学习通过寻找最能够解释数据变量之间关系的规则,来找出大量多元数据集中有用的关联规则。常见算法包括 Apriori 算法和 Eclat 算法等。 

  人工神经网络

  人工神经网络算法模拟生物神经网络,是一类模式匹配算法。通常用于解决分类和回归问题。人工神经网络是机器学习的一个庞大的分支,有几百种不同的算法。(其中深度学习就是其中的一类算法,我们会单独讨论),重要的人工神经网络算法包括:感知器神经网络(Perceptron Neural Network), 反向传递(Back Propagation), Hopfield 网络,自组织映射(Self-Organizing Map, SOM)。学习矢量量化(Learning Vector Quantization, LVQ) 

  深度学习

  

  深度学习算法是对人工神经网络的发展。 在近期赢得了很多关注, 特别是 百度也开始发力深度学习后, 更是在国内引起了很多关注。  在计算能力变得日益廉价的今天,深度学习试图建立大得多也复杂得多的神经网络。很多深度学习的算法是半监督式学习算法,用来处理存在少量未标识数据的大数据集。常见的深度学习算法包括:受限波尔兹曼机(Restricted Boltzmann Machine, RBN), Deep Belief Networks(DBN),卷积网络(Convolutional Network), 堆栈式自动编码器(Stacked Auto-encoders)。 

  降低维度算法

  像聚类算法一样,降低维度算法试图分析数据的内在结构,不过降低维度算法是以非监督学习的方式试图利用较少的信息来归纳或者解释数据。这类算法可以用于高维数据的可视化或者用来简化数据以便监督式学习使用。常见的算法包括:主成份分析(Principle Component Analysis, PCA),偏最小二乘回归(Partial Least Square Regression,PLS), Sammon 映射,多维尺度(Multi-Dimensional Scaling, MDS),  投影追踪(Projection Pursuit)等。 

  集成算法

RF

  集成算法用一些相对较弱的学习模型独立地就同样的样本进行训练,然后把结果整合起来进行整体预测。集成算法的主要难点在于究竟集成哪些独立的较弱的学习模型以及如何把学习结果整合起来。这是一类非常强大的算法,同时也非常流行。常见的算法包括:Boosting, Bootstrapped Aggregation(Bagging), AdaBoost,堆叠泛化(Stacked Generalization, Blending),梯度推进机(Gradient Boosting Machine, GBM),随机森林(Random Forest)。

机器学习中常见算法都会用到参数估计以及损失函数。

常见的参数估计方法有:梯度下降、牛顿法、拟牛顿法。

常见的损失函数有:
1.0-1损失函数 (0-1 loss function)


2.平方损失函数(quadratic loss function)


3.绝对值损失函数(absolute loss function)


4.对数损失函数(logarithmic loss function) 或对数似然损失函数(log-likehood loss function)


5.合页损失函数 ,L(y(wx+b)) = [1-y(wx+b)]下取整

算法 目标函数 问题优化 损失函数
感知机, f(x)= sign(w*x+b), 采用梯度下降法优化参数w,误分类点到分类超平面的最小距离
KNN, y=argmaxsum(I(yi=cj)), 交叉验证选择最好的k,采用投票表决方法判定样本所属的类, 误分类率P(Y!=f(X))最小化,采用0-1损失函数
Navie Bayes, y=P(Y=ci)[P(Xj=xiY=ck)],j=1,2,..n, 极大似然估计相应的先验概率和条件概率,为避免出现概率为0的情况,采用贝叶斯估计,在随机变量各个取值的频数上赋予一个正数r>0。r=1时为拉普拉斯平滑, 求后验概率最大化等价于0-1损失函数时的期望风险最小化
决策树, ID3:g(D,A)=H(D)-H(DA)、C4.5:gr(D,A)=g(D,A)/Ha(D)、CART:miniGini(D,A), 决策树剪枝
逻辑回归, P(Y=kx)=1/1+exp(-wx), k=1,…,K-1, P(Y=Kx)=1/1+exp(wx),参数选优方法一般采用迭代尺度法、梯度下降法、拟牛顿法 采用对数损失函数
线性回归, f(xi)=wxi+b,使得f(xi)~=yi, 采用最小二乘估计参数, 平方和最小损失函数
Adaboost, 采用指数损失函数
SVM, min (w*w)/2,y=sign(wx+b), SMO解决对偶问题, 采用合页损失函数

机器学习流行算法一览

这篇文章介绍几个最流行的机器学习算法。现在有很多机器学习算法,困难的是进行方法归类,这里我们介绍两种方法进行思考和分类这些算法。第一组算法是学习风格,第二组是在形式和功能上类似。

学习风格

  一个算法基于问题建模有不同的方法,无论这个问题是基于经验或环境的交互,或者是基于我们需要输入的数据,学习风格是机器学习首先必须考虑的问题。

  下面我们看看一些算法的主要学习风格或者称为学习模型。

  • Supervised Learning有监督式学习: 输入的数据被称为训练数据,一个模型需要通过一个训练过程,在这个过程中进行预期判断,如果错误了再进行修正,训练过程一直持续到基于训练数据达到预期的 精确性。其关键方法是分类和回归,算法是逻辑回归(Logistic Regression)和BP神经网络(Back Propagation Neural Network)
  • Unsupervised Learning无监督学习: 没有任何训练数据,基于没有标记的输入数据采取推导结构的模型,其关键方式是关联规则学习和聚合,算法有Apriori 算法和k-means.
  • Semi-Supervised Learning半监督式学习: 输入数据是标记和非标记的混合案例,模型必须学习其中结构然后按照预期组织数据,其关键方法是分类和回归。
  • 强化学习:模型必须能从一个环境刺激中进行应对和反应。反馈不会作为一个教学过程的形式,但是可以环境的奖惩。其关键方法是系统和机器人控制。算法有Q-learning和Temporal difference learning。

  当为了商业决策建模而处理数据时,你通常使用监督和无监督学习方法。目前的一个热点话题是图像分类等领域的半监督学习,很少有标记的例子大型数据集的方法。强化学习是更容易在机器人控制与其他控制系统等领域有应用。

分类算法

  分类是找出数据库中的一组数据对象的共同特点并按照分类模式将其划分为不同的类,其目的是通过分类模型,将数据库中的数据项映射到 摸个给定的类别中。可以应用到涉及到应用分类、趋势预测中,如淘宝商铺将用户在一段时间内的购买情况划分成不同的类,根据情况向用户推荐关联类的商品,从 而增加商铺的销售量。

空间覆盖算法-基于球邻域的空间划分

空间覆盖算法-仿生模式识别

空间覆盖算法-视觉分类方法

VCA把数据看作一幅图像,核心是基于尺度空间理论,选择合适的尺度使得同类样本区域融合在一起。

分类超曲面算法HSC

  设训练样本所在空间为一封闭维方体区域,将此区域按照一定细分规则划分成若干小区域,使每个小区域只包含同一类样本点,并用样本点的类别标定该区域,合并相邻同类区域边界,获得若干超平面片封闭组成的分类超曲面。输入新样本点,根据分类判别定理判断样本点所在的类别。

特点:

  1. 通过特征区域细化直接解决非线性分类问题,不需要考虑使用何种函数,不需要升维变换。
  2. 通用可操作的分类超曲面构造法,基于分类超曲面的方法通过区域合并计算获得分类超曲面对空间进行划分
  3. 独特、简便、易行的分类判别方法,基于分类超曲面的方法是基于Jordan定理的分类判断算法,使得基于非凸的超曲面的分类判别变得简便、易行。

极小覆盖子集

  覆盖型分类算法的极小覆盖子集——对特定的训练样本集,若其子样本集训练后得到的分类模型与与原样本集训练后得到的分类模型相同,则称子样本集是原样本集的一个覆盖。在一个样本集的所有覆盖中,包含样本个数最少的覆盖称为样本集的极小覆盖子集。

  (1)计算极小覆盖子集的基本步骤:

  用一个方形区域覆盖所有样本点;将该区域划分成一系列小区域 (单元格),直到每个小区域内包含的样本点都属于同一类别;将落在同一小区域内的样本点中选择且仅选择一个样本构成极小覆盖子集。

  (2)采样受限于极小覆盖子集

  全样本空间必然包含极小覆盖子集,任意一个数据集未必包含完整的极小覆盖子集。大数据环境下,极小覆盖子集中的样本更多地包含在大数据中,较多的数据可以战胜较好的算法、再多的数据亦不会超过极小覆盖子集的代表性、再好的提升手段亦不会超过极小覆盖子集确定的精度。

相似度算法

  算法通常在功能或形式上呈现一定相似度。例如,基于树的方法和神经网络方法的启发。这是一个有用的分组方法,但它是不完美的。仍然 有一些算法容易地融入多个类别,如学习矢量量化Learning Vector Quantization,它既是一个神经网络的启发方法又是一个基于实例的方法的算法。

  也有一些描述问题域和算法类别上有相同名称的算法,如回归分析和聚合。因此,像机器学习算法本身一样,没有完美的模型,只有适合的模型。

下面我们陈列出一些流行的机器学习算法。

Regression回归

  回归是关注变量之间关系的建模,利用模型预测误差测量进行反复提炼。回归方法是统计工作,已纳入统计机器学习。这可能是令人困惑,因为我们可以用回归来引用各类的问题及各类算法。回归其实是一个过程。

  在市场营销中,回归分析可以被应用到各个方面。如通过对本季度销售的回归分析,对下一季度的销售趋势作出预测并做出针对性的营销改变。

  一些示例算法是:

  • Ordinary Least Squares普通最小二乘法
  • Logistic Regression逻辑回归
  • Stepwise Regression逐步回归
  • Multivariate Adaptive Regression Splines (MARS)多元自适应回归
  • Locally Estimated Scatterplot Smoothing (LOESS)本地散点平滑估计

基于实例的方法

  基于实例的学习模型是使用那些对于模型很重要训练数据,这类方法通常使用基于示例数据的数据库,用新数据和数据库数据以一种相似度 方式从中找到最佳匹配,从而作出预测。出于这个原因,基于实例的方法也被称为赢家通吃所有的方法和基于记忆的学习。重点放在存储实例之间的相似性度量表现 上。

  • k-Nearest Neighbour (kNN)
  • Learning Vector Quantization (LVQ)学习矢量量化
  • Self-Organizing Map (SOM)自组织映射算法

Regularization正则化方法

  正则化方法是其他算法(回归算法)的延伸,根据算法的复杂度对算法进行调整。正则化方法通常对简单模型予以奖励而对复杂算法予以惩 罚。基于正则化方法的扩展 (典型是基于regression回归方法) 可能比较复杂,越简单可能会利于推广,下面列出的正则化方法是因为它们比较流行 强大简单。

  • Ridge Regression岭回归数值计算方法
  • Least Absolute Shrinkage and Selection Operator (LASSO)至少绝对的收缩和选择算子
  • Elastic Net弹性网络

决策(Decision)树学习

  决策树方法是建立一种基于数据的实际属性值的决策模型。决策使用树型结构直至基于一个给定记录的预测决策得到。决策树的训练是在分类和回归两方面的数据上进行的。

  • Classification and Regression Tree (CART)分类回归树
  • Iterative Dichotomiser 3 (ID3)迭代二叉树3代
  • C4.5
  • Chi-squared Automatic Interaction Detection (CHAID)卡方自动交互检测
  • Decision Stump单层决策树
  • Random Forest随机森林
  • Multivariate Adaptive Regression Splines (MARS)多元自适应回归样条
  • Gradient Boosting Machines (GBM)梯度推进机

决策树

Bayesian贝叶斯

贝叶斯方法是明确使用贝叶斯定理进行分类和回归:

  • Naive Bayes朴素贝叶斯
  • Averaged One-Dependence Estimators (AODE)平均单依赖估计
  • Bayesian Belief Network (BBN)贝叶斯信念网络

Kernel Methods内核方法

Kernel Methods最有名的流行的支持向量机的方法, Kernel Methods更关注将数据映射到高维空间向量,在那里可以进行一些分类或回归问题的建模。

  • Support Vector Machines (SVM)支持向量机
  • Radial Basis Function (RBF)径向基函数
  • Linear Discriminate Analysis (LDA)线性鉴别分析

聚类Clustering方法

  Clustering聚类方法, 类似回归,是属于描述问题和方法的类别,聚集方法通常被建模于基于几何中心centroid-based和层次组织等系统。所有的方法都是有关使用数据中固有的结构,这样以便更好将数据组织为存在最大共性的分组。

  聚类类似于分类,但与分类的目的不同,是针对数据的相似性和差异性将一组数据分为几个类别。属于同一类别的数据间的相似性很大,但不同类别之间数据的相似性很小,跨类的数据关联性很低。

  • k-Means
  • Expectation Maximisation (EM)期望最大化算法

聚类

关联规则学习

  关联规则的学习方法是提取那些能解释观察到的变量之间的数据关系的规则。这些规则可以用于在大型多维数据集里,以便能发现重要的和商业上对某个组织或公司有用的的关联。

  关联规则的挖掘过程主要包括两个阶段:第一阶段为从海量原始数据中找出所有的高频项目组;第二极端为从这些高频项目组产生关联规 则。关联规则挖掘技术已经被广泛应用于金融行业企业中用以预测客户的需求,各银行在自己的ATM 机上通过捆绑客户可能感兴趣的信息供用户了解并获取相应信息来改善自身的营销。

  • Apriori 算法
  • Eclat 算法

人工神经网络

  人工神经网络模型的灵感来自于生物神经网络的结构和功能。他们是一类的模式匹配,常用于回归和分类问题。

  神经网络作为一种先进的人工智能技术,因其自身自行处理、分布存储和高度容错等特性非常适合处理非线性的以及那些以模糊、不完整、不严密的知识 或数据为特征的处理问题,它的这一特点十分适合解决数据挖掘的问题。典型的神经网络模型主要分为三大类:第一类是以用于分类预测和模式识别的前馈式神经网 络模型,其主要代表为函数型网络、感知机;第二类是用于联想记忆和优化算法的反馈式神经网络模型,以Hopfield 的离散模型和连续模型为代表。第三类是用于聚类的自组织映射方法,以ART 模型为代表。虽然神经网络有多种模型及算法,但在特定领域的数据挖掘中使用何种模型及算法并没有统一的规则,而且人们很难理解网络的学习及决策过程

  因为各种各样的问题类型有数百种分支的算法。一些经典的流行的方法:

  • Perceptron感知器神经网络
  • Back-Propagation反向传递
  • Hopfield Network(Hopfield网络)
  • Self-Organizing Map (SOM)自组织映射
  • Learning Vector Quantization (LVQ)学习矢量量化

深度学习

  深度学习方法是一个现代的人工神经网络方法升级版,利用丰富而又廉价的计算,建立更大和更复杂的神经网络,许多方法都是涉及半监督学习(大型数据中包含很少有标记的数据)。

  • Restricted Boltzmann Machine (RBM)受限波尔兹曼机
  • Deep Belief Networks (DBN)深度信念网络
  • Convolutional Network回旋神经网
  • Stacked Auto-encoders堆栈式自动编码器

Dimensionality Reduction降维方法

  类似群集clustering方法, 降维是寻求和利用数据的内在结构,但在这种情况下,使用无监督的方式只能较少的信息总结或描述数据。以监督方式使用是有用的,能形成可视化的三维数据或简化数据。

  • Principal Component Analysis (PCA)主成分分析
  • Partial Least Squares Regression (PLS)偏最小二乘回归
  • Sammon Mapping
  • Multidimensional Scaling (MDS)多维尺度
  • Projection Pursuit投影寻踪

Ensemble集成方法

  集成方法是由多个独立训练的弱模型组成,这些模型以某种方式结合进行整体预测。大量的精力需要投入学习什么弱类型以及它们的组合方式。这是一个非常强大的很受欢迎的技术类别:

  • Boosting
  • Bootstrapped Aggregation (Bagging)自展输入引导式聚合
  • AdaBoost
  • Stacked Generalization (blending)堆栈泛化
  • Gradient Boosting Machines (GBM)梯度Boosting机器
  • Random Forest随机森林

弱者是灰色的,组合预测是红色的。具体显示的是温度/臭氧数据.

原文地址:https://www.cnblogs.com/timssd/p/5639287.html