机器学习算法概览

本文是翻译文章,但我并未逐字句的翻译,而是有所删减,并加入了一些自己的补充。

机器学习(Machine Learning, ML)是什么,作为一个MLer,经常难以向大家解释何为ML。久而久之,发现要理解或解释机器学习是什么,可以从机器学习可以解决的问题这个角度来说。对于MLers,理解ML解决的问题的类型也有助于我们更好的准备数据和选择算法。

十个机器学习问题样例

想入门机器学习的同学,经常会去看一些入门书,比如《集体智慧编程》、《机器学习实战》、《数据挖掘》、《推荐系统实践》等。看书的过程中,经常性的会看到如下样例:

  • 垃圾邮件识别
  • 信用卡交易异常检测
  • 手写数字识别
  • 语音识别
  • 人脸检测
  • 商品推荐
  • 疾病检测(根据以往病例记录,确定病人是否患病)
  • 股票预测
  • 用户分类(根据用户行为判断该用户是否会转化为付费用户)
  • 形状检测(根据用户在手写板上上画得形状,确定用户画的到底是什么形状)

因此,当再有人问ML是什么的时候,就可以说这个是ML可以handle的,这个问题ML也可以handle,blahblah。

机器学习问题类型

对问题进行分类,好处就在于可以更好的把握问题的本质,更好的知道什么类型的算法需要用到。

一般有四大类型:

  • 分类(classification):有一些已经标注好类别的数据,在标注好的数据上建模,对于新样本,判断它的类别。如垃圾邮件识别
  • 回归(regression):有一些已经标注好的数据,标注值与分类问题不同,分类问题的标注是离散值,而回归问题中的标注是实数,在标注好的数据上建模,对于新样本,得到它的标注值。如股票预测。
  • 聚类(clustering):数据没有被标注,但是给出了一些相似度衡量标准,可以根据这些标准将数据进行划分。如在一堆未给出名字的照片中,自动的将同一个人的照片聚集到一块。
  • 规则抽取(rule extraction):发现数据中属性之间的统计关系,而不只是预测一些事情。如啤酒和尿布。

机器学习算法

知道了机器学习要解决的问题后,就可以思考针对某一个问题,需要采集的数据的类型和可以使用的机器学习算法,机器学习发展到今天,诞生了很多算法,在实际应用中往往问题在于算法的选择,在本文中,使用两种标准对算法进行分类,即学习方式和算法之间的相似性。

学习方式(Learning Style)

在ML中,只有几个主流的学习方式,在下面的介绍中,使用一些算法和问题的样例来对这些方式进行解释说明。按照学习方式对机器学习算法进行分类可以使我们更多的思考输入数据在算法中的角色和使用模型前需要的准备工作,对我们选择最适合的模型有很好的指导作用。

  • 监督学习(supervised learning):输入数据都有一个类别标记或结果标记,被称作训练数据,比如垃圾邮件与非垃圾邮件、某时间点的股票价格。模型由训练过程得到,利用模型,可以对新样本做出推测,并可以计算得到这些预测的精确度等指标。训练过程往往需要在训练集上达到一定程度的精确度,不欠拟合或过拟合。监督学习一般解决的问题是分类和回归,代表算法有逻辑斯底回归(Logistic Regression)和神经网络后向传播算法(Back Propagation Neural Network)。
  • 无监督学习(Unsupervised Learning):输入数据没有任何标记,通过推理数据中已有的结构来构建模型。一般解决的问题是规则学习和聚类,代表算法有Apriori算法和k-means算法。
  • 半监督学习(Semi-Supervised Learning):输入数据是标注数据和非标注数据的混合,它也是为了解决预测问题的,但是模型必须同时兼顾学习数据中已经存在的结构和作出预测,即上述监督学习和无监督学习的融合。该方法要解决的问题仍然是分类的回归,代表算法一般是在监督学习的算法上进行扩展,使之可以对未标注数据建模。
  • 增强学习(Reinforcement Learning):在这种学习方式中,模型先被构建,然后输入数据刺激模型,输入数据往往来自于环境中,模型得到的结果称之为反馈,使用反馈对模型进行调整。它与监督学习的区别在于反馈数据更多的来自于环境的反馈而不是由人指定。该方式解决的问题是系统与机器人控制,代表算法是Q-学习(Q-learning)和时序差分算法(Temporal difference learning)。

在商业决策中,一般会使用的方法是监督学习和无监督学习。当下一个热门的话题是半监督学习,比如在图片分类中,有很多数据集都是有少量的标记数据和大量的非标记数据。增强学习更多的用于机器人控制机其他的控制系统中。

算法相似度(Algorithm Similarity)

一般会根据模型的模式或者函数模式的相似度来对算法进行划分。比如基于树的方法(tree-based method)与神经网络算法(neural network)。当然,这种方法并不完美,因为很多算法可以很容易的被划分到多个类别中去,比如学习矢量量化算法(Learning Vector Quantization)既是神经网络算法也是基于样例的算法(Instance-based method)。在本文中,可以看到很多不同的分类方法。

回归(Regression)

回归是在自变量和需要预测的变量之间构建一个模型,并使用迭代的方法逐渐降低预测值和真实值之间的误差。回归方法是统计机器学习的一种

常用的回归算法如下:

  • Ordinary Least Squares(最小二乘法)
  • Logistic Regression(逻辑斯底回归)
  • Stepwise Regression(逐步回归)
  • Multivariate Adaptive Regression Splines(多元自适应回归样条法)
  • Locally Estimated Scatterplot Smoothing(局部加权散点平滑法)

基于样例的方法(Instance-based Methods)

基于样例的方法需要一个样本库,当新样本出现时,在样本库中找到最佳匹配的若干个样本,然后做出推测。基于样例的方法又被成为胜者为王的方法和基于内存的学习,该算法主要关注样本之间相似度的计算方法和存储数据的表示形式。

  • 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)

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

  • 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)

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

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

核方法(Kernel Methods)

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

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

聚类(Clustering Methods)

聚类本身就形容了问题和方法。聚类方法通常是由建模方式分类的比如基于中心的聚类和层次聚类。所有的聚类方法都是利用数据的内在结构来组织数据,使得每组内的点有最大的共同性。

  • K-Means
  • Expectation Maximisation (EM)

联合规则学习(Association Rule Learning)

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

  • Apriori algorithm
  • Eclat algorithm

人工神经网络(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)

与聚类方法类似,对数据中的固有结构进行利用,使用无监督的方法学习一种方式,该方式用更少的信息来对数据做归纳和描述。这对于对数据进行可视化或者简化数据很有用,也有去除噪声的影响,经常采用这种方法使得算法更加高效。

  • 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

原文链接

时间: 2024-10-24 15:57:30

机器学习算法概览的相关文章

【方法论】机器学习算法概览

http://blog.itpub.net/31542119/viewspace-2168911/ 1. 监督式学习 工作机制:这个算法由一个目标变量或结果变量(或因变量)组成.这些变量由已知的一系列预示变量(自变量)预测而来.利用这一系列变量,我们生成一个将输入值映射到期望输出值的函数.这个训练过程会一直持续,直到模型在训练数据上获得期望的精确度.监督式学习的例子有:回归.决策树.随机森林.K – 近邻算法.逻辑回归等. 2.非监督式学习 工作机制:在这个算法中,没有任何目标变量或结果变量要预

机器学习算法中如何选取超参数:学习速率、正则项系数、minibatch size

机器学习算法中如何选取超参数:学习速率.正则项系数.minibatch size 本文是<Neural networks and deep learning>概览 中第三章的一部分,讲机器学习算法中,如何选取初始的超参数的值.(本文会不断补充) 学习速率(learning rate,η) 运用梯度下降算法进行优化时,权重的更新规则中,在梯度项前会乘以一个系数,这个系数就叫学习速率η.下面讨论在训练时选取η的策略. 固定的学习速率.如果学习速率太小,则会使收敛过慢,如果学习速率太大,则会导致代价

机器学习算法简介

欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:吴懿伦 导语: 本文是对机器学习算法的一个概览,以及个人的学习小结.通过阅读本文,可以快速地对机器学习算法有一个比较清晰的了解.本文承诺不会出现任何数学公式及推导,适合茶余饭后轻松阅读,希望能让读者比较舒适地获取到一点有用的东西. 引言 本文是对机器学习算法的一个概览,以及个人的学习小结.通过阅读本文,可以快速地对机器学习算法有一个比较清晰的了解.本文承诺不会出现任何数学公式及推导,适合茶余饭后轻松阅读,希望能让读者比较舒适地获取到

《时序异常检测算法概览》

时序异常检测算法概览 2018-09-03 17:08:49 分类:人工智能与大数据 来自:论智(微信号:jqr_AI),作者:Pavel Tiunov,编译:weakish来源:statsbot,原文链接 编者按:Statsbot CTO Pavel Tiunov简要介绍了最流行的时序异常检测算法,并讨论了它们的优点和缺点 在Statsbot,我们持续检查异常检测方法这一领域的研究,并据此更新我们的模型. 本文概览了最流行的时序异常检测算法,并讨论了它们的优点和缺点. 本文是为想要了解异常检测

利用机器学习算法寻找网页的缩略图

博客中的文章均为meelo原创,请务必以链接形式注明本文地址 描述一个网页 现在的世界处于一个信息爆炸的时代.微信.微博.新闻网站,每天人们在大海捞针的信息海洋里挑选自己感兴趣的信息.我们是如何判断哪条信息可能会感兴趣?回想一下,你会发现是标题.摘要和缩略图.通过标题.摘要和缩略图,就能够很好地猜测到网页的内容.打开百度搜索引擎,随便搜索一个关键字,每一条搜索结果也正是这三要素构成的. 那么一个自然的问题是搜索引擎是如何找到网页的标题.摘要和缩略图的呢. 寻找网页的标题其实是一个非常简单的问题.

机器学习系列(9)_机器学习算法一览(附Python和R代码)

本文资源翻译@酒酒Angie:伊利诺伊大学香槟分校统计学同学,大四在读,即将开始计算机的研究生学习.希望认识更多喜欢大数据和机器学习的朋友,互相交流学习. 内容校正调整:寒小阳 && 龙心尘 时间:2016年4月 出处:http://blog.csdn.net/han_xiaoyang/article/details/51191386 http://blog.csdn.net/longxinchen_ml/article/details/51192086 声明:版权所有,转载请联系作者并注

简单易学的机器学习算法——AdaBoost

一.集成方法(Ensemble Method) 集成方法主要包括Bagging和Boosting两种方法,随机森林算法是基于Bagging思想的机器学习算法,在Bagging方法中,主要通过对训练数据集进行随机采样,以重新组合成不同的数据集,利用弱学习算法对不同的新数据集进行学习,得到一系列的预测结果,对这些预测结果做平均或者投票做出最终的预测.AdaBoost算法和GBDT(Gradient Boost Decision Tree,梯度提升决策树)算法是基于Boosting思想的机器学习算法.

【机器学习算法-python实现】采样算法的简单实现

1.背景 采样算法是机器学习中比较常用,也比较容易实现的(出去分层采样).常用的采样算法有以下几种(来自百度知道): 一.单纯随机抽样(simple random sampling) 将调查总体全部观察单位编号,再用抽签法或随机数字表随机抽取部分观察单位组成样本. 优点:操作简单,均数.率及相应的标准误计算简单. 缺点:总体较大时,难以一一编号. 二.系统抽样(systematic sampling) 又称机械抽样.等距抽样,即先将总体的观察单位按某一顺序号分成n个部分,再从第一部分随机抽取第k

【机器学习算法-python实现】矩阵去噪以及归一化

1.背景 项目需要,打算用python实现矩阵的去噪和归一化.用numpy这些数学库没有找到很理想的函数,所以一怒之下自己用标准库写了一个去噪和归一化的算法,效率有点低,不过还能用,大家如果有需要可以拿去. (1)去噪算法:根据概率论的知识,如果一组数据服从正态分布,我们设均值是n,方差是v,那么对于每个离散数值有百分之九十二以上的概率会在(n-3*v,n+3*v)的区间内.所以这里的去噪功能主要是实现如果超出了区间就将这个值标记为区间所能容忍最大值. (2)归一化:找到输入队列最大值max,最