收藏:机器学习27张速查表、13种算法和4种学习方法-程序员宅基地

编辑:私募工场,转载请注明出处


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


一、4大主要学习方式


1.监督式学习

 

在监督式学习下,输入数据被称为“训练数据”,每组训练数据有一个明确的标识或结果,如对防垃圾邮件系统中“垃圾邮件”“非垃圾邮件”,对手写数字识别中的“1“,”2“,”3“,”4“等。


在建立预测模型的时候,监督式学习建立一个学习过程,将预测结果与“训练数据”的实际结果进行比较,不断的调整预测模型,直到模型的预测结果达到一个预期的准确率。


监督式学习的常见应用场景如分类问题和回归问题。常见算法有逻辑回归(Logistic Regression)和反向传递神经网络(Back Propagation Neural Network)。


2.强化学习

在这种学习模式下,输入数据作为对模型的反馈,不像监督模型那样,输入数据仅仅是作为一个检查模型对错的方式,在强化学习下,输入数据直接反馈到模型,模型必须对此立刻作出调整。


常见的应用场景包括动态系统以及机器人控制等。常见算法包括Q-Learning以及时间差学习(Temporal difference learning)。 


3. 非监督式学习

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


4.半监督式学习

在此学习方式下,输入数据部分被标识,部分没有被标识,这种学习模型可以用来进行预测,但是模型首先需要学习数据的内在结构以便合理的组织数据来进行预测。


应用场景包括分类和回归,算法包括一些对常用监督式学习算法的延伸,这些算法首先试图对未标识数据进行建模,在此基础上再对标识的数据进行预测。如图论推理算法(Graph Inference)或者拉普拉斯支持向量机(Laplacian SVM.)等。


二、13种常用算法


根据算法的功能和形式的类似性,我们可以把算法分类,比如说基于树的算法,基于神经网络的算法等等。当然,机器学习的范围非常庞大,有些算法很难明确归类到某一类。


1.回归算法

回归算法是试图采用对误差的衡量来探索变量之间的关系的一类算法。回归算法是统计机器学习的利器。在机器学习领域,人们说起回归,有时候是指一类问题,有时候是指一类算法,这一点常常会使初学者有所困惑。


常见的回归算法包括:最小二乘法(Ordinary Least Square),逻辑回归(Logistic Regression),逐步式回归(Stepwise Regression),多元自适应回归样条(Multivariate Adaptive Regression Splines)以及本地散点平滑估计(Locally Estimated Scatterplot Smoothing)。

2. 正则化方法

 

正则化方法是其他算法(通常是回归算法)的延伸,根据算法的复杂度对算法进行调整。正则化方法通常对简单模型予以奖励而对复杂算法予以惩罚。


常见的算法包括:Ridge Regression, Least Absolute Shrinkage and Selection Operator(LASSO),以及弹性网络(Elastic Net)。


3.决策树学习

决策树算法根据数据的属性采用树状结构建立决策模型, 决策树模型常常用来解决分类和回归问题。


常见的算法包括:分类及回归树(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)


4.基于实例的算法

 

基于实例的算法常常用来对决策问题建立模型,这样的模型常常先选取一批样本数据,然后根据某些近似性把新数据与样本数据进行比较。通过这种方式来寻找最佳的匹配。因此,基于实例的算法常常也被称为“赢家通吃”学习或者“基于记忆的学习”。


常见的算法包括 k-Nearest Neighbor(KNN), 学习矢量量化(Learning Vector Quantization, LVQ),以及自组织映射算法(Self-Organizing Map , SOM)。


5.贝叶斯方法

贝叶斯方法算法是基于贝叶斯定理的一类算法,主要用来解决分类和回归问题。


常见算法包括:朴素贝叶斯算法,平均单依赖估计(Averaged One-Dependence Estimators, AODE),以及Bayesian Belief Network(BBN)。


6.聚类算法

 

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


常见的聚类算法包括 k-Means算法以及期望最大化算法(Expectation Maximization, EM)。


7.降低维度算法

 

像聚类算法一样,降低维度算法试图分析数据的内在结构,不过降低维度算法是以非监督学习的方式试图利用较少的信息来归纳或者解释数据。这类算法可以用于高维数据的可视化或者用来简化数据以便监督式学习使用。


常见的算法包括:主成份分析(Principle Component Analysis, PCA),偏最小二乘回归(Partial Least Square Regression,PLS), Sammon映射,多维尺度(Multi-Dimensional Scaling, MDS),  投影追踪(Projection Pursuit)等。


8.关联规则学习

 

关联规则学习通过寻找最能够解释数据变量之间关系的规则,来找出大量多元数据集中有用的关联规则。


常见算法包括 Apriori算法和Eclat算法等。


9.遗传算法(genetic algorithm)

遗传算法模拟生物繁殖的突变、交换和达尔文的自然选择(在每一生态环境中适者生存)。


它把问题可能的解编码为一个向量,称为个体,向量的每一个元素称为基因,并利用目标函数(相应于自然选择标准)对群体(个体的集合)中的每一个个体进行评价,根据评价值(适应度)对个体进行选择、交换、变异等遗传操作,从而得到新的群体。


遗传算法适用于非常复杂和困难的环境,比如,带有大量噪声和无关数据、事物不断更新、问题目标不能明显和精确地定义,以及通过很长的执行过程才能确定当前行为的价值等。


10.人工神经网络

人工神经网络算法模拟生物神经网络,是一类模式匹配算法。通常用于解决分类和回归问题。人工神经网络是机器学习的一个庞大的分支,有几百种不同的算法。


(其中深度学习就是其中的一类算法,我们会单独讨论),重要的人工神经网络算法包括:感知器神经网络(Perceptron Neural Network), 反向传递(Back Propagation), Hopfield网络,自组织映射(Self-Organizing Map, SOM)。


11.深度学习

 

深度学习算法是对人工神经网络的发展。 在近期赢得了很多关注, 特别是百度也开始发力深度学习后, 更是在国内引起了很多关注。   在计算能力变得日益廉价的今天,深度学习试图建立大得多也复杂得多的神经网络。很多深度学习的算法是半监督式学习算法,用来处理存在少量未标识数据的大数据集。


常见的深度学习算法包括:受限波尔兹曼机(Restricted Boltzmann Machine, RBN), Deep Belief Networks(DBN),卷积网络(Convolutional Network), 堆栈式自动编码器(Stacked Auto-encoders)。


12.基于核的算法

 

基于核的算法中最著名的莫过于支持向量机(SVM)了。 基于核的算法把输入数据映射到一个高阶的向量空间, 在这些高阶向量空间里, 有些分类或者回归问题能够更容易的解决。 


常见的基于核的算法包括:支持向量机(Support Vector Machine, SVM), 径向基函数(Radial Basis Function ,RBF), 以及线性判别分析(Linear Discriminate Analysis ,LDA)等。


13.集成算法

集成算法用一些相对较弱的学习模型独立地就同样的样本进行训练,然后把结果整合起来进行整体预测。集成算法的主要难点在于究竟集成哪些独立的较弱的学习模型以及如何把学习结果整合起来。这是一类非常强大的算法,同时也非常流行。


常见的算法包括:Boosting, Bootstrapped Aggregation(Bagging), AdaBoost,堆叠泛化(Stacked Generalization, Blending),梯度推进机(Gradient Boosting Machine, GBM),随机森林(Random Forest),GBDT(Gradient Boosting Decision Tree)。


机器学习(Machine Learning)有不少有用的流程图和机器学习算法表。 这里只包括所发现的最全面的速查表。


三、27张机器学习速查表


神经网络架构(NeuralNetwork Architectures)


来源:http://www.asimovinstitute.org/neural-network-zoo/

Microsoft Azure算法流程图(Microsoft AzureAlgorithm Flowchart)

来源:https://docs.microsoft.com/en-us/azure/machine-learning/machine-learning-algorithm-cheat-sheet

  

SAS算法流程图(SAS Algorithm Flowchart)

来源:http://blogs.sas.com/content/subconsciousmusings/2017/04/12/machine-learning-algorithm-use/


 

算法总结(AlgorithmSummary)

来源:http://machinelearningmastery.com/a-tour-of-machine-learning-algorithms/

 

来源: http://thinkbigdata.in/best-known-machine-learning-algorithms-infographic/

 

 

算法优缺点(AlgorithmPro/Con)

来源:https://blog.dataiku.com/machine-learning-explained-algorithms-are-your-friend

 

Python

当然Python有很多在线资源。 对于本节只包括所遇到的最好的速查表。

 

算法(Algorithms)

来源:https://www.analyticsvidhya.com/blog/2015/09/full-cheatsheet-machine-learning-algorithms/


 

Python基础(Python Basics)

来源:http://datasciencefree.com/python.pdf


来源:https://www.datacamp.com/community/tutorials/python-data-science-cheat-sheet-basics#gs.0x1rxEA

 

Numpy

来源:https://www.dataquest.io/blog/numpy-cheat-sheet/


 

来源:http://datasciencefree.com/numpy.pdf

 

来源:https://www.datacamp.com/community/blog/python-numpy-cheat-sheet#gs.Nw3V6CE

 

来源:https://github.com/donnemartin/data-science-ipython-notebooks/blob/master/numpy/numpy.ipynb

 

Pandas

来源:http://datasciencefree.com/pandas.pdf

 

来源:https://www.datacamp.com/community/blog/python-pandas-cheat-sheet#gs.S4P4T=U


 

来源:https://github.com/donnemartin/data-science-ipython-notebooks/blob/master/pandas/pandas.ipynb



Matplotlib

来源:https://www.datacamp.com/community/blog/python-matplotlib-cheat-sheet

 

来源:https://github.com/donnemartin/data-science-ipython-notebooks/blob/master/matplotlib/matplotlib.ipynb

 

Scikit Learn

来源:http://peekaboo-vision.blogspot.de/2013/01/machine-learning-cheat-sheet-for-scikit.html



来源:http://peekaboo-vision.blogspot.de/2013/01/machine-learning-cheat-sheet-for-scikit.html


来源:https://github.com/rcompton/ml_cheat_sheet/blob/master/supervised_learning.ipynb

 

Tensorflow

来源:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/1_Introduction/basic_operations.ipynb

 

Pytorch

来源:https://github.com/bfortuner/pytorch-cheatsheet


数学(Math)

如果你真的想了解机器学习,那么需要对统计(特别是概率)、线性代数和微积分的理解打下坚实的基础。在本科期间我辅修数学,但是我肯定需要复习这些知识。 这些速查表提供了大多数需要了解最常见的机器学习算法背后的数学。

 

概率(Probability)

来源:http://www.wzchen.com/s/probability_cheatsheet.pdf

 

线性代数(Linear Algebra)

来源:https://minireference.com/static/tutorials/linear_algebra_in_4_pages.pdf

 

统计学(Statistics)

来源:http://web.mit.edu/~csvoss/Public/usabo/stats_handout.pdf

 

微积分(Calculus)

来源:http://tutorial.math.lamar.edu/getfile.aspx?file=B,41,N

点击下方“阅读原文”下载【科技头条】
↓↓↓
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/tkkzc3E6s4Ou4/article/details/78987588

智能推荐

性能统计工具代码-程序员宅基地

文章浏览阅读470次。打点工具:import java.util.ArrayList;import java.util.Date;import java.util.HashMap;import java.util.List;import java.util.Map;import org.apache.log4j.Logger;public class Performa

MDaemon补丁更新公告_mdaemon如何-程序员宅基地

文章浏览阅读250次。最近MDaemon在MDaemon WebMail中发现了一个潜在的漏洞。MDaemon开发团队已经构建并测试了一个补丁来纠正这个问题。此安全更新适用于所有受支持的MDaemon Email Server版本。此外,此安全更新还会更正以前发布的所有更新。更新内容:修复Webmail漏洞摘要SecuritiTeam Secure Disclosure(SSD)最近报告了MDaem..._mdaemon如何

抗混叠滤波matlab实现,采用抗混叠滤波器的高性能、12位、500 MSPS宽带接收机-程序员宅基地

文章浏览阅读526次。电路功能与优势图1所示电路是基于超低噪声差分放大器驱动器ADA4960-1和12位、500 MSPS模数转换器AD9434的宽带接收机前端。三阶巴特沃兹抗混叠滤波器基于放大器和ADC的性能和接口要求而优化。由滤波器网络、变压器和其他阻性元件引起的总插入损耗仅为1.2 dB。整体电路带宽为290 MHz,通带平坦度为1 dB。在140 MHz模拟输入下测得的SNR和SFDR分别为64.1 dBFS和..._matlab抗混叠滤波器

Closures-程序员宅基地

文章浏览阅读61次。Closuresare self-contained blocks of functionality that can be passed around and used in your code. Closures in Swift are similar to blocks in C and Objective-C and to lambdas in other programmi...

rocketMq实战(3)-console和运维-程序员宅基地

文章浏览阅读500次。 rocketmq这么复杂的东西,没有运维工具可搞不定啊。 哈哈,别急,官方提供了一个WEB项目,可以查看rocketmq数据和执行一些操作。而且我自己也添加了一些功能官网:https://github.com/rocketmq/rocketmq-console运行修改一下namesers的地址,注意多个地址用 分号 分割 下面是成功页面,cluster查询bro...

c3p0连接mysql8.0.11配置问题_mysql8 c3po-程序员宅基地

文章浏览阅读1.1w次,点赞17次,收藏30次。配置好了数据库版本后,出了各种问题,一步一步解决1.更新老版本的JAR包,新的如下:c3p0-0.9.5.2mchange-commons-java-0.2.15mysql-connector-java-8.0.11下载地址:https://pan.baidu.com/s/1DeTy5gOvFrY4pFbsvObyMQ提取码:ncel2.配置C3P0-confi........._mysql8 c3po

随便推点

tomcat配置数据库连接池步骤详解_tomcat如何配置数据库的连接池-程序员宅基地

文章浏览阅读1.7w次,点赞7次,收藏12次。1. 首先在tomcat中配置context.xml,把连接数据库的一些参数配置进去,配置如下:

B. Karen and Coffee-程序员宅基地

文章浏览阅读561次。B. Karen and Coffeetime limit per test2.5 secondsmemory limit per test512 megabytesinputstandard inputoutputstandard outputTo stay woke and attentive during classes, Karen needs some...

macd ema java源码_史上最牛MACD指标公式(源码、截图)-程序员宅基地

文章浏览阅读1.2k次。0,0,MACD,2.2,0 ),Color0BFFFF;STICKLINE(MACD0,0,MACD,1.65,0 ),Color46FFFF;STICKLINE(MACD>=REF(MACD,1)AND MACD>0,0,MACD,8 ,0 ),Color0000BB;STICKLINE(MACD>=REF(MACD,1)AND MACD>0,0,MACD,6.3 ,0..._最牛macd指标公式

vue生命周期函数、react生命周期函数、微信小程序生命周期函数、uni-app生命周期函数,简介及图示_uniapp attach-程序员宅基地

文章浏览阅读2.2k次,点赞8次,收藏10次。vue生命周期函数beforeCreate (创建前)created (创建后)beforeMount (挂载前)mounted (挂载后)beforeUpdate (数据更新前)updated (数据更新后)beforeDestroy (销毁前)destroyed (销毁后)详情传送门react生命周期函数初始化1.getDefaultProps()getDefaultProps这种定义方式是用在你定义组件用的是React.createClass方式的如果使用的是es6_uniapp attach

mysql驼峰转换下划线_驼峰式命名的字符串与数据库字段下划线大写方式的相互转换..._法律人张宇的博客-程序员宅基地

文章浏览阅读1.4k次。/*** 带下划线大写格式转换为驼峰格式* @param str* @returns {string}*/function upperCaseToCamelCase(str) {var strArr = str.split("_");var ret = [];for (var i = 0; i < strArr.length; i++) {if (i == 0) {ret.push(strA..._mysql驼峰转下划线公式

关于笔记本预装win10/8改装win7蓝屏问题, G5030预装win8改装win7-程序员宅基地

文章浏览阅读1.4k次。本教程仅作参考,仅适用于对应问题;安装系统之前检查安装对象磁盘分区格式(以下所有命令均不作详细解释)win+R组合键 运行cmd输入命令: diskpart;list disk;如果GPT列下带有*则分区格式为GPT 否则为MBR(若为此,不需要继续往下看了,不是对应问题);或在GUI进行查看,自行百度;开机利用启动U盘进入dos命令行;输入命令: diskpart