机器学习系列(4)_机器学习算法⼀览,应⽤建议与解决思路
1.引⾔
提起笔来写这篇博客,突然有点愧疚和尴尬。愧疚的是,⼯作杂事多,加之懒癌严重,导致这个系列⼀直没有更新,向关注该系列的同学们道个歉。尴尬的是,按理说,机器学习介绍与算法⼀览应该放在最前⾯写,详细的应⽤建议应该在讲完机器学习常⽤算法之后写,突然莫名奇妙在中间插播这么⼀篇,好像有点打乱主线。
⽼话说『亡⽺补牢,为时未晚』,前⾯开头忘讲的东西,咱在这块⼉补上。我们先带着⼤家过⼀遍传统机器学习算法,基本思想和⽤途。把问题解决思路和⽅法应⽤建议提前到这⾥的想法也很简单,希望能提前给⼤家⼀些⼩建议,对于某些容易出错的地⽅也先给⼤家打个预防针,这样在理解后续相应机器学习算法之后,使⽤起来也有⼀定的章法。
2.机器学习算法简述
按照不同的分类标准,可以把机器学习的算法做不同的分类。
2.1 从机器学习问题⾓度分类我们先从机器学习问题本⾝分类的⾓度来看,我们可以分成下列类型的算法:
监督学习算法机器学习中有⼀⼤部分的问题属于『监督学习』的范畴,简单⼝语化地说明,这类问题中,给定的训练样本中,每个样本的输⼊都对应⼀个确定的结果,我们需要训练出⼀个模型(数学上看是⼀个的映射关系),在未知的样本给定后,我们能对结果做出预测。这⾥的预测结果如果是离散值(很多时候是类别类型,⽐如邮件分类问题中的垃圾邮件/普通邮件,⽐如⽤户会/不会购买某商品),那么我们把它叫做分类问题(classification problem);如果预测结果是连续值(⽐如房价,股票价格等等),那么我们把它叫做回归问题(regression problem)。
有⼀系列的机器学习算法是⽤以解决监督学习问题的,⽐如最经典的⽤于分类问题的朴素贝叶斯、逻辑回归、⽀持向量机等等;⽐如说⽤于回归问题的线性回归等等。
⽆监督学习
有另外⼀类问题,给我们的样本并没有给出『标签/标准答案』,就是⼀系列的样本。⽽我们需要做的事情是,在⼀些样本中抽取出通⽤的规则。这叫做『⽆监督学习』。包括关联规则和聚类算法在内的⼀系列机器学习算法都属于这个范畴。
半监督学习
这类问题给出的训练数据,有⼀部分有标签,有⼀部分没有标签。我们想学习出数据组织结构的同时,
也能做相应的预测。此类问题相对应的机器学习算法有⾃训练(Self-Training)、直推学习(Transductive Learning)、⽣成式模型(Generative Model)等。
总体说来,最常见是前两类问题,⽽对应前两类问题的⼀些机器学习算法如下:
2.2 从算法的功能⾓度分类
我们也可以从算法的共性(⽐如功能,运作⽅式)⾓度对机器学习算法分类。下⾯我们根据算法的共性去对它们归个类。不过需要注意的是,我们下⾯的归类⽅法可能对分类和回归有⽐较强的倾向性,⽽这两类问题也是最常遇到的。
2.2.1 回归算法(Regression Algorithms)
x y x →y f x ′y ′
回归算法是⼀种通过最⼩化预测值与实际结果值之间的差距,⽽得到输⼊特征之间的最佳组合⽅式的⼀类算法。对于连续值预测有线性回归等,⽽对于离散值/类别预测,我们也可以把逻辑回归等也视作回归算法的⼀种,常见的回归算法如下:
Ordinary Least Squares Regression (OLSR)
Linear Regression
Logistic Regression
Stepwise Regression
Locally Estimated Scatterplot Smoothing (LOESS)
Multivariate Adaptive Regression Splines (MARS)
2.2.2 基于实例的算法(Instance-based Algorithms)
这⾥所谓的基于实例的算法,我指的是我们最后建成的模型,对原始数据样本实例依旧有很强的依赖性。这类算法在做预测决策时,⼀般都是使⽤某类相似度准则,去⽐对待预测的样本和原始样本的相近度,再给出相应的预测结果。常见的基于实例的算法有:
k-Nearest Neighbour (kNN)
Learning Vector Quantization (LVQ)
Self-Organizing Map (SOM)
Locally Weighted Learning (LWL)
2.2.3 决策树类算法(Decision Tree Algorithms)
决策树类算法,会基于原始数据特征,构建⼀颗包含很多决策路径的树。预测阶段选择路径进⾏决策。常见的决策树算法包括:
Classification and Regression Tree (CART)
Iterative Dichotomiser 3 (ID3)
C4.5 and C5.0 (different versions of a powerful approach)
Chi-squared Automatic Interaction Detection (CHAID)
M5
Conditional Decision Trees
2.2.4 贝叶斯类算法(Bayesian Algorithms)
这⾥说的贝叶斯类算法,指的是在分类和回归问题中,隐含使⽤了贝叶斯原理的算法。包括:
Naive Bayes
Gaussian Naive Bayes
Multinomial Naive Bayes
Averaged One-Dependence Estimators (AODE)
Bayesian Belief Network (BBN)
Bayesian Network (BN)
2.2.5 聚类算法(Clustering Algorithms)
聚类算法做的事情是,把输⼊样本聚成围绕⼀些中⼼的『数据团』,以发现数据分布结构的⼀些规律。常⽤的聚类算法包括:k-Means
Hierarchical Clustering
bootstrappedExpectation Maximisation (EM)
2.2.6 关联规则算法(Association Rule Learning Algorithms)
关联规则算法是这样⼀类算法:它试图抽取出,最能解释观察到的训练样本之间关联关系的规则,也就是获取⼀个事件和其他事件之间依赖或关联的知识,常见的关联规则算法有:
Apriori algorithm
Eclat algorithm
2.2.7 ⼈⼯神经⽹络类算法(Artificial Neural Network Algorithms)
这是受⼈脑神经元⼯作⽅式启发⽽构造的⼀类算法。需要提到的⼀点是,我把『深度学习』单拎出来了,这⾥说的⼈⼯神经⽹络偏向于更传统的感知算法,主要包括:
Perceptron
Back-Propagation
Radial Basis Function Network (RBFN)
2.2.8 深度学习(Deep Learning Algorithms)
深度学习是近年来⾮常⽕的机器学习领域,相对于上⾯列的⼈⼯神经⽹络算法,它通常情况下,有着更深的层次和更复杂的结构。有兴趣的同学可以看看我们另⼀个系列,最常见的深度学习算法包括:
Deep Boltzmann Machine (DBM)
Deep Belief Networks (DBN)
Convolutional Neural Network (CNN)
Stacked Auto-Encoders
2.2.9 降维算法(Dimensionality Reduction Algorithms)
从某种程度上说,降维算法和聚类其实有点类似,因为它也在试图发现原始训练数据的固有结构,但是降维算法在试图,⽤更少的信息(更低维的信息)总结和描述出原始信息的⼤部分内容。
有意思的是,降维算法⼀般在数据的可视化,或者是降低数据计算空间有很⼤的作⽤。它作为⼀种机器学习的算法,很多时候⽤它先处理数据,再灌⼊别的机器学习算法学习。主要的降维算法包括:
Principal Component Analysis (PCA)
Principal Component Regression (PCR)
Partial Least Squares Regression (PLSR)
Sammon Mapping
Multidimensional Scaling (MDS)
Linear Discriminant Analysis (LDA)
Mixture Discriminant Analysis (MDA)
Quadratic Discriminant Analysis (QDA)
Flexible Discriminant Analysis (FDA)
2.2.10 模型融合算法(Ensemble Algorithms)
严格意义上来说,这不算是⼀种机器学习算法,⽽更像是⼀种优化⼿段/策略,它通常是结合多个简单的弱机器学习算法,去做更可靠的决策。拿分类问题举个例,直观的理解,就是单个分类器的分类是可能出错,不可靠的,但是如果多个分类器投票,那可靠度就会⾼很多。常⽤的模型融合增强⽅法包
括:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论