流行的机器学习算法概述

标签: 流行 机器学习 算法 | 发表时间:2016-02-20 07:30 | 作者:luopingfeng
出处:http://blog.csdn.net
 

本文我们会概述一些流行的机器学习算法。

机器学习算法很多,并且它们自身又有很多延伸。因此,如何确定解决一个问题的最好算法是很困难的。

下面我们先说基于学习方式对算法的分类和算法之间的相似性,让大家有个整体意识;接着再陈述各类算法。

一、基于学习方式对算法的分类

根据如何处理经验、环境或者任何我们称之为输入的数据,算法分为不同种类。机器学习和人工智能课本通常先考虑算法可以适应的学习方式。

这里只讨论几个主要的学习风格或学习模型,并且有几个基本的例子。这种分类或者组织的方法很好,因为它迫使你去思考输入数据的角色和模型准备的过程,然后选择一个最适合你的问题的算法,从而得到最佳的结果。

  • 监督学习:输入数据被称为训练数据,并且有已知的结果或被标记。比如说一封邮件是否是垃圾邮件,或者说一段时间内的股价。模型做出预测,如果错了就会被修正,这个过程一直持续到对于训练数据它能够达到一定的正确标准。问题例子包括分类和回归问题,算法例子包括逻辑回归和反向神经网络。
  • 无监督学习:输入数据没有被标记,也没有确定的结果。模型对数据的结构和数值进行归纳。问题例子包括Association rule learning和聚类问题,算法例子包括 Apriori 算法和K-均值算法。
  • 半监督学习:输入数据是被标记的和不被标记的数据的混合,有一些预测问题但是模型也必须学习数据的结构和组成。问题例子包括分类和回归问题,算法例子基本上是无监督学习算法的延伸。
  • 增强学习:输入数据可以刺激模型并且使模型做出反应。反馈不仅从监督学习的学习过程中得到,还从环境中的奖励或惩罚中得到。问题例子是机器人控制,算法例子包括Q-learning以及Temporal difference learning。

当整合数据模拟商业决策时,大多数会用到监督学习和无监督学习的方法。当下一个热门话题是半监督学习,比如图像分类问题,这中问题中有一个大的数据库,但是只有一小部分图片做了标记。增强学习多半还是用在机器人控制和其他控制系统的开发上。

二、机器学习算法的相似性

算法基本上从功能或者形式上来分类。比如,基于树的算法,神经网络算法。这是一个很有用的分类方式,但并不完美。因为有许多算法可以轻易地被分到两类中去,比如说Learning Vector Quantization就同时是神经网络类的算法和基于实例的方法。正如机器学习算法本身没有完美的模型一样,算法的分类方法也没有完美的。

三、各类流行的机器学习算法

Regression

Regression(回归分析)关心的是变量之间的关系。它应用的是统计方法,几个算法的例子包括:

  • Ordinary Least Squares
  • Logistic Regression
  • Stepwise Regression
  • Multivariate Adaptive Regression Splines (MARS)
  • Locally Estimated Scatterplot Smoothing (LOESS)

Instance-based Methods

Instance based learning(基于实例的学习)模拟了一个决策问题,所使用的实例或者例子是对模型非常重要的。这种方法对现有数据建立一个数据库然后把新数据加进去,再用一个相似性测量方法从而在数据库里找出一个最优匹配,进行一个预测。由于这个原因,这种方法也被称为胜者为王方法和基于内存的方法。现在关注的焦点在存储数据的表现形式和相似性测量方法。

  • k-Nearest Neighbour (kNN)
  • Learning Vector Quantization (LVQ)
  • Self-Organizing Map (SOM)

Regularization Methods

这是一个对其他方法的延伸(通常是回归方法),这个延伸对越简单的模型越有利,并且更擅长归纳。我在这里列出它是因为它的流行和强大。

  • Ridge Regression
  • Least Absolute Shrinkage and Selection Operator (LASSO)
  • Elastic Net

Decision Tree Learning

Decision tree methods(决策树方法)建立了一个根据数据中实际值决策的模型。决策树用来解决归纳和回归问题。

  • Classification and Regression Tree (CART)
  • Iterative Dichotomiser 3 (ID3)
  • C4.5
  • Chi-squared Automatic Interaction Detection (CHAID)
  • Decision Stump
  • Random Forest
  • Multivariate Adaptive Regression Splines (MARS)
  • Gradient Boosting Machines (GBM)

Bayesian

Bayesian method(贝叶斯方法)是在解决归类和回归问题中应用了贝叶斯定理的方法。

  • Naive Bayes
  • Averaged One-Dependence Estimators (AODE)
  • Bayesian Belief Network (BBN)

Kernel Methods

Kernel Method(核方法)中最有名的是Support Vector Machines(支持向量机)。这种方法把输入数据映射到更高维度上,是的一些归类和回归问题更容易建模。

  • Support Vector Machines (SVM)
  • Radial Basis Function (RBF)
  • Linear Discriminate Analysis (LDA)

Clustering Methods

Clustering(聚类),本身就形容了问题和方法。聚类方法通常是由建模方式分类的。所有的聚类方法都是用统一的数据结构来组织数据,使得每组内有最多的共同点。

  • K-Means
  • Expectation Maximisation (EM)

Association Rule Learning

Association rule learning(联合规则学习)是用来对数据间提取规律的方法,通过这些规律可以发现巨量多维空间数据之间的联系,而这些重要的联系可以被组织拿来使用。

  • Apriori algorithm
  • Eclat algorithm

Artificial Neural Networks

Artificial Neural Networks(人工神经网络)是从生物神经网络的结构和功能得到启发的。它属于模式匹配一类,经常被用于回归和分类问题,但是它存在上百个算法和变种组成。其中有一些是经典流行的算法(我把深度学习拿出来单独讲):

  • Perceptron
  • Back-Propagation
  • Hopfield Network
  • Self-Organizing Map (SOM)
  • Learning Vector Quantization (LVQ)

Deep Learning

Deep Learning(深度学习)方法是人工神经网络的一种现代的更新。相比传统的神经网络,它有更多更复杂的网络构成,许多方法都是关心半监督学习,这种学习的问题中有很大的数据,但是其中很少是被标记的数据。

  • Restricted Boltzmann Machine (RBM)
  • Deep Belief Networks (DBN)
  • Convolutional Network
  • Stacked Auto-encoders

Dimensionality Reduction

Dimensionality Reduction(维度缩减),像聚类方法一样,追求和利用数据中的统一的结构,但是它用更少的信息来对数据做归纳和形容。这对于对数据进行可视化或者简化数据很有用。

  • Principal Component Analysis (PCA)
  • Partial Least Squares Regression (PLS)
  • Sammon Mapping
  • Multidimensional Scaling (MDS)
  • Projection Pursuit

Ensemble Methods

Ensemble methods(组合方法)由许多小的模型组成,这些模型经过独立训练,做出独立的结论,最后组成一个总的预测。很多研究集中在使用什么模型以及这些模型怎么被组合起来。这是一个非常强大且流行的技术。

  • Boosting
  • Bootstrapped Aggregation (Bagging)
  • AdaBoost
  • Stacked Generalization (blending)
  • Gradient Boosting Machines (GBM)
  • Random Forest


这是一个用组合方法进行拟合的例子(来自维基),每个消防法用灰色表示,最后合成的最终预测是红色的。

作者:luopingfeng 发表于2016/2/19 23:30:30 原文链接
阅读:2990 评论:1 查看评论

相关 [流行 机器学习 算法] 推荐:

流行的机器学习算法概述

- - CSDN博客推荐文章
  本文我们会概述一些流行的机器学习算法. 机器学习算法很多,并且它们自身又有很多延伸. 因此,如何确定解决一个问题的最好算法是很困难的. 下面我们先说基于学习方式对算法的分类和算法之间的相似性,让大家有个整体意识;接着再陈述各类算法. 一、基于学习方式对算法的分类. 根据如何处理经验、环境或者任何我们称之为输入的数据,算法分为不同种类.

Mahout实现的机器学习算法

- - ITeye博客
使用命令:mahout -h.   在Mahout实现的机器学习算法见下表:. EM聚类(期望最大化聚类). 并行FP Growth算法. 并行化了Watchmaker框架. 非Map-Reduce算法. 扩展了java的Collections类. Mahout最大的优点就是基于hadoop实现,把很多以前运行于单机上的算法,转化为了MapReduce模式,这样大大提升了算法可处理的数据量和处理性能.

机器学习算法选用指南

- - IT瘾-geek
在从事数据科学工作的时候,经常会遇到为具体问题选择最合适算法的问题. 虽然有很多有关机器学习算法的文章详细介绍了相关的算法,但要做出最合适的选择依然非常困难. 在这篇文章中,我将对一些基本概念给出简要的介绍,对不同任务中使用不同类型的机器学习算法给出一点建议. 在文章的最后,我将对这些算法进行总结.

机器学习实战——k-近邻算法 - panpannju

- - 博客园_首页
(一)什么是k-近邻分类算法. (二)怎样从文件中解析和导入数据. (三)使用Matplotlib创建扩散图. (一) 什么是k-近邻分类算法. 简单地说,k-近邻算法采用测量不同特征值之间的距离方法进行分类,k-近邻是一种有监督的分类算法. k-近邻的工作原理:存在一个样本数据集,也称之为训练样本集,并且样本集中的每个数据都存在标签,即每个样本所属的类别.

Mahout实现的机器学习算法一览表

- - ITeye博客
         Apache Mahout 是 ApacheSoftware Foundation (ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序,并且,在 Mahout 的最近版本中还加入了对Apache Hadoop 的支持,使这些算法可以更高效的运行在云计算环境中.

机器学习的分类与主要算法对比

- - CSDN博客综合推荐文章
重要引用: Andrew Ng Courera Machine Learning; 从机器学习谈起; 关于机器学习的讨论; 机器学习常见算法分类汇总; LeNet Homepage; pluskid svm.   首先让我们瞻仰一下当今机器学习领域的执牛耳者:.   这幅图上的三人是当今机器学习界的执牛耳者.

基于机器学习方法的POI品类推荐算法 -

- -
在美团商家数据中心(MDC),有超过100w的已校准审核的POI数据(我们一般将商家标示为POI,POI基础信息包括:门店名称、品类、电话、地址、坐标等). 如何使用这些已校准的POI数据,挖掘出有价值的信息,本文进行了一些尝试:利用机器学习方法,自动标注缺失品类的POI数据. 例如,门店名称为“好再来牛肉拉面馆”的POI将自动标注“小吃”品类.

[译] 如何选择正确的机器学习算法?

- - IT瘾-dev
机器学习既是一门科学,也是一种艺术. 纵观各类机器学习算法,并没有一种普适的解决方案或方法. 事实上,有几个因素会影响你对机器学习算法的选择. 有些问题是非常特别的,需要用一种特定的解决方法. 例如,如果你对推荐系统有所了解,你会发现它是一类很常用的机器学习算法,用来解决一类非常特殊的问题. 而其它的一些问题则非常开放,可能需要一种试错方法(例如:强化学习).

2017年度盘点:15个最流行的GitHub机器学习项目

- - 机器之心
在本文中,作者列出了 2017 年 GitHub 平台上最为热门的知识库,囊括了数据科学、机器学习、深度学习中的各种项目,希望能对大家学习、使用有所帮助. 另,小编恬不知耻地把机器之心的 Github 项目也加了进来,求 star,求 pull requests. GitHub 是计算机科学领域最为活跃的社区,在 GitHub 上,来自不同背景的人们分享越来越多的软件工具和资源库.

机器学习算法 Java 库 Smile 1.5.0 发布,引入新特性

- - 开源中国社区最新新闻
机器学习算法 Java 库 Smile 1.5.0 已发布. 该版本引入了新特性和修复 bug,改进了对 Windows 的支持,具体如下:. SmileMiner是一个包含各种现有的机器学习算法的Java库. mile 机器学习的核心库. SmileMath 数学函数、排序、随机数生成器、最优化、线性代数、统计分布、假设检验.