阅读目录

  • 1. 学习方式
  •  1.1 监督式学习
  •  1.2 非监督式学习
  •  1.3 半监督式学习
  •  1.4 强化学习
  • 2. 算法分类
  •  2.1 回归算法
  •  2.2 基于实例的算法
  •  2.3 正则化方法
  •  2.4 决策树学习
  •  2.5 贝叶斯方法
  •  2.6 基于核的算法
  •  2.7 聚类算法
  •  2.8 关联规则学习
  •  2.9 遗传算法(genetic algorithm)
  •  2.10 人工神经网络
  •  2.11 深度学习
  •  2.12 降低维度算法
  •  2.13 集成算法

  声明:本篇博文根据http://www.ctocio.com/hotnews/15919.html整理,原作者张萌,尊重原创。

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

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

  博主在原创基础上加入了遗传算法(2.9)的介绍,这样一来,本篇博文所包含的机器学习算法更加全面丰富。该博文属于总结型文章,如想具体理解每一个算法的具体实现方法,还得针对逐个算法进行学习和推敲。

回到顶部

1. 学习方式

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

回到顶部

  1.1 监督式学习

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

回到顶部

  1.2 非监督式学习

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

回到顶部

  1.3 半监督式学习

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

回到顶部

  1.4 强化学习

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

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

回到顶部

2. 算法分类

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

回到顶部

  2.1 回归算法

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

回到顶部

  2.2 基于实例的算法

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

回到顶部

  2.3 正则化方法

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

回到顶部

  2.4 决策树学习

  决策树算法根据数据的属性采用树状结构建立决策模型, 决策树模型常常用来解决分类和回归问题。常见的算法包括:分类及回归树(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)

回到顶部

  2.5 贝叶斯方法

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

回到顶部

  2.6 基于核的算法

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

回到顶部

  2.7 聚类算法

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

回到顶部

  2.8 关联规则学习

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

回到顶部

  2.9 遗传算法(genetic algorithm)

  遗传算法模拟生物繁殖的突变、交换和达尔文的自然选择(在每一生态环境中适者生存)。它把问题可能的解编码为一个向量,称为个体,向量的每一个元素称为基因,并利用目标函数(相应于自然选择标准)对群体(个体的集合)中的每一个个体进行评价,根据评价值(适应度)对个体进行选择、交换、变异等遗传操作,从而得到新的群体。遗传算法适用于非常复杂和困难的环境,比如,带有大量噪声和无关数据、事物不断更新、问题目标不能明显和精确地定义,以及通过很长的执行过程才能确定当前行为的价值等。同神经网络一样,遗传算法的研究已经发展为人工智能的一个独立分支,其代表人物为霍勒德(J.H.Holland)。

回到顶部

  2.10 人工神经网络

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

  2.11 深度学习

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

回到顶部

  2.12 降低维度算法

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

回到顶部

  2.13 集成算法

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

机器学习常见算法分类汇总相关推荐

  1. 14种机器学习常见算法分类汇总

    14种机器学习常见算法分类汇总 2015-09-25 待字闺中 待字闺中 待字闺中 微信号 daiziguizhongren 功能介绍 深度分析大数据.深度学习.人工智能等技术,切中实际应用场景,为大 ...

  2. 机器学习常见算法优缺点汇总

    向AI转型的程序员都关注了这个号

  3. 机器学习常见算法汇总

    原文地址:http://www.ctocio.com/hotnews/15919.html 偶然看到的一篇文章,这篇文章写的很清晰,所以转载一下,补充自己的知识库,以下为正文 机器学习无疑是当前数据分 ...

  4. 机器学习常见算法及优缺点!

    点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 ? Index 决策树算法 分类算法 聚类算法 集成算法(AdaBoost算法) 人工 ...

  5. 人工智能之机器学习常见算法

    https://blog.csdn.net/BaiHuaXiu123/article/details/51475384 摘要 之前一直对机器学习很感兴趣,一直没时间去研究,今天刚好是周末,有时间去各大 ...

  6. 机器学习的算法分类、优劣比较和选择

    一.机器学习算法分类 (1).监督学习:之所以被称为监督学习,是因为这类算法必须知道预测什么,即目标变量的分类信息.输入数据是由输入特征值和目标值所组成.函数的输出可以是一个连续的值称为回归,输出是有 ...

  7. 人工智能—机器学习常见算法

    摘要 之前一直对机器学习很感兴趣,一直没时间去研究,今天刚好是周末,有时间去各大技术论坛看看,刚好看到一篇关于机器学习不错的文章,在这里就分享给大家了.  机器学习无疑是当前数据分析领域的一个热点内容 ...

  8. MLK | 机器学习常见算法优缺点了解一下

    MLK,即Machine Learning Knowledge,本专栏在于对机器学习的重点知识做一次梳理,便于日后温习,这篇文章很久之前在本公众号发过,现在拿回来整理下,也算是一种温故而知新了. ? ...

  9. 机器学习常见的分类算法的优缺点

    1. 前言 在机器学习中,种类最多的一类算法要属很类算法,本文对机器学习中的各种分类算法的优缺点做一个总结. 2. 贝叶斯分类法 2.1 优点 所需估计的参数少,对于缺失数据不敏感. 有着坚实的数学基 ...

  10. 机器学习常见算法个人总结(面试用)

    朴素贝叶斯 参考[1] 事件A和B同时发生的概率为在A发生的情况下发生B或者在B发生的情况下发生A [Math Processing Error]P(A∩B)=P(A)∗P(B|A)=P(B)∗P(A ...

最新文章

  1. Python:Resquest模块
  2. mysql show语句_mysql常用show语句
  3. java final类 能被继承吗_Java中的类被final关键字修饰后,该类将不可以被继承()...
  4. Scala高阶函数详解
  5. feachall php_集合:给 PHP 数组插上翅膀
  6. 《看聊天记录都学不会C语言?太菜了吧》(11)2分钟领悟数组
  7. php 无法加载css文件,解决ThinkPHP样式无法加载问题(CSS,JS),
  8. 定义一个Employee类并排序(完整版本)
  9. Leetcode刷题之旅1
  10. lintcode-106-排序列表转换为二分查找树
  11. STM32 AES 加解密流程梳理
  12. php分享二十五:跨域请求
  13. 用c#转换word或excel文档为html文件,C#实现DataSet内数据转化为Excel和Word文件的通用类完整实例...
  14. 希捷 服务器文件丢失 原因,移动硬盘数据丢失的原因有哪些?如何进行专业的数据恢复?...
  15. 【小狗钱钱】—— 送人生一份理财
  16. 微信读书vscode插件_曾经我以为 VSCode 是程序员专属的工具,直到发现了这些……...
  17. 全差分运放阻抗匹配计算(三)
  18. bzoj 4805: 欧拉函数求和
  19. 一文带你了解800万像素车载摄像头
  20. 数据可视化分析工具如何在国内弯道超车,迅速崛起?

热门文章

  1. python脚本微博自动转发抽奖_微博自动转发抽奖软件
  2. 标准Io编程学习笔记
  3. 字符串拼接的sql注入实战
  4. VmPlayer 无法启动解决方法一例
  5. 高仿iOS微信客户端
  6. 可靠的自托管「GitHub 热点速览 v.22.37」
  7. java+swing+mysql员工工资管理系统设计分析
  8. 启动失败java.lang_关于jeesite启动失败的问题java.lang.UnsupportedClassVersionError
  9. Litjson快速入门
  10. 密码应用安全性评估实施之(一)密码应用方案设计