【51CTO.com快译】机器学习算法介绍
在机器学习算法的领域,我们一般采用两种方法来进行分类,它们是:
- 第一种是根据学习的方式,进行算法分类。
- 第二种是根据形式或功能的相似性,进行算法分类。
一般情况下,这两大类不分伯仲。此次,我们主要探究的是根据相似度分类的算法、及其各种不同的类型。
按学习方式进行分类的机器学习算法
一般而言,同一种算法会根据不同的互动体验,对一个问题采取不同的建模方式。而这并不会影响到我们对于输入数据的调用。同时,一些算法会经常出现在时下流行的机器学习、和人工智能领域的教科书中。
因此,面对不同的应用场景,人们首先需要考虑的是一个算法所适用的学习方式。在下文中,我们将探讨机器学习算法的几个主要学习方式,以及不同算法所适用的问题场景与用例。通过综合考虑各种输入数据所扮演的“角色”、和模型准备的不同流程,您将会根据自己的问题选择出最适合的一种算法,并最终得到最佳结果。
下面先让我们来看看三种不同的学习方式:
监督学习
在监督式学习下,输入数据被称为“训练数据”,它们都具有已知的标签或结果,例如“垃圾邮件”、“非垃圾邮件”、或某个时刻的股票价格等。监督式学习通过一个训练的过程,来建立一种预测模型。它们通过将预测结果与“训练数据”的实际结果相比较,来不断的修正预测结果。因此,该训练过程会持续下去,直至模型达到了预期的水平。
- 常见应用场景包括:分类问题和回归问题。
- 常见算法包括:逻辑回归(Logistic Regression)和反向传递神经网络(Back Propagation Neural Network)
无监督学习
在非监督式学习中,输入数据并不被标记,也没有某个已知的结果。我们必须通过推导输入数据的内在结构,来准备相应的模型。我们可以提取出一些通用的规则,同时也可以通过某个数学过程,来减少冗余。
- 常见的应用场景包括:聚类、降维、和关联规则学习。
- 常见算法包括:先验(Apriori)算法和K-均值(k-Means)算法。
半监督学习
在半监督式学习中,输入数据是被标记和未标记样本的混合物。它同样具有期望的预测目标。该模式必须通过学习不同的结构,来组织各种数据,从而做出预测。
- 常见应用场景包括:分类问题和回归问题。
- 常见算法包括:一些针对其他灵活的监督式学习算法的延伸,这些算法试图对未标识数据进行建模。
按相似性进行分类的算法
机器学习算法通常会按照功能的相似性进行分类,其中包括:基于(决策)树的方法、和神经网络的启发方法。我个人认为这是对机器学习算法最有效、最实用的分类方法。当然,也有些算法会横跨多个类别,例如:学习矢量量化(Learning Vector Quantization)。该算法是神经网络方法和基于实例方法的结合,常被用来描述回归与聚类的问题、以及算法的类型。此类算法的特点是不会重复地去调用相同的算法。
1.回归算法
回归算法关注的是对变量之间的关系进行建模。我们可以使用该模型,来对各种预测中产生的误差指标予以改善。
这些方法都是统计学方面的“主力军”,同时也是统计机器学习方面的“利器”。由于“回归”既可以指问题的类型、也可以指算法的问题,因此在指代上比较容易混淆。最流行的回归算法包括:
- 普通最小二乘回归(Ordinary Least Square Regression,OLSR)
- 线性回归(Linear Regression)
- 逻辑回归(Logistic Regression)
- 逐步式回归(Stepwise Regression)
- 多元自适应回归样条(Multivariate Adaptive Regression Splines,MARS)
- 本地散点平滑估计(Locally Estimated Scatterplot Smoothing,LOESS)
2.基于实例的算法
该模型使用各种实例的训练数据,来处理决策问题。其方法是构建出一个样本数据的数据库。它通过将新数据与样本数据进行比较,采用相似性的方法找到最佳的匹配、并进行预测。我们会存储不同实例的表现状态,并在实例之间使用相似性来进行衡量。因此,基于实例的算法也被称为“赢家通吃的学习”或“基于记忆的学习”。最流行的基于实例的算法包括:
- k-近邻(k-Nearest Neighbor,kNN)
- 学习矢量量化(Learning Vector Quantization,LVQ)
- 自组织映射(Self-Organizing Map,SOM)
- 局部加权学习(Locally Weighted Learning,LWL)
3.正则化算法
该方法是其他算法(通常指回归算法)的延伸,它采用的“惩罚”模型与其复杂度有关,即:模型越是简单、就越容易泛化(generalizing)。我将它在此单独列举出来的原因是:它不但广受欢迎、功能强大,而且只是对其他方法进行了简单修改。最流行的正则化算法包括:
- 岭回归(Ridge Regression)
- Least Absolute Shrinkage and Selection Operator,LASSO
- 弹性网络(Elastic Net)
- 最小角度回归(Least-Angle Regression,LARS)
4.决策树算法
决策树方法是基于数据属性的实际值,来构建的决策模型。树状的结构会不断分叉,直到根据给定的记录作出了预测抉择。决策树会对分类和回归问题的数据进行训练。由于决策树具有速度快、结果准的特性,因此它成为最受欢迎的机器学习算法之一。最流行的决策树算法包括:
- 分类与回归树(Classification and Regression Tree,CART)
- Iterative Dichotomiser 3,ID3
- C4.5和C5.0
- 卡方自动交互检测(Chi-squared Automatic Interaction Detection,CHAID)
- 决策树桩(单层决策树,Decision Stump)
- M5
- 条件决策树(Conditional Decision Trees)
5.贝叶斯算法
此类算法适用于那些贝叶斯定理的问题,例如分类与回归。最流行的贝叶斯算法包括:
- 朴素贝叶斯(Naive Bayes)
- 高斯朴素贝叶斯(Gaussian Naive Bayes)
- 多项式朴素贝叶斯(Multinomial Naive Bayes)
- Averaged One-Dependence Estimators,AODE
- 贝叶斯信念网络(Bayesian Belief Network,BBN)
- 贝叶斯网络(Bayesian Network,BN)
6.聚类算法
聚类跟回归一样,既可以用来描述问题的类型,又可以指代方法的类型。此方法采用基于中心点(centroid-based)或分层级(hierarchal)等建模方法,而所有的方法都与数据固有的结构的使用有关。其目标是将数据按照它们之间的最大共性进行分组。最流行的聚类算法包括:
- K-均值(k-Means)
- K-中位数(k-Medians)
- 期望最大化(Expectation Maximisation,EM)
- 分层聚类(Hierarchical Clustering)
7.关联规则学习算法
关联规则的学习方法旨在提取各种规则,即:通过观察,最好地描述出数据变量之间的关系。这些规则能够从大型多维数据集里,发现可以被组织所利用到的重要的、且实用的各种关联。最流行的关联规则学习算法包括:
- 先验算法(Apriori algorithm)
- Eclat算法
8.人工神经网络算法
该算法是由生物神经网络结构所启发的模型。它们是一类用于解决回归和分类等问题的模式匹配。由于它结合了数以百计的算法和变量,因此它会包含一个极其庞大的子集。最流行的人工神经网络算法包括:
- 感知(Perceptron)
- 反向传播(Back-Propagation)
- Hopfield网络
- 径向基函数网络(Radial Basis Function Network,RBFN)
9.深度学习算法
深度学习算法是人工神经网络的升级版,它充分利用了廉价的计算力。它们涉及到搭建规模更为庞大、结构更为复杂的神经网络。最流行的深度学习算法包括:
- 深度玻尔兹曼机(Deep Boltzmann Machine,DBM)
- 深度信念网络(Deep Belief Networks,DBN)
- 卷积神经网络(Convolutional Neural Network,CNN)
- 栈式自动编码器(Stacked Auto-Encoder)
10.降维算法
与聚类方法类似,降维算法寻找数据中的固有结构。一般情况下,它对于可视化的三维数据比较实用。我们可以在监督学习方法中使用它,以实现分类和回归。最流行的降维算法包括:
- 主成分分析(Principal Component Analysis,PCA)
- 主成分回归(Principal Component Regression,PCR)
- 偏最小二乘回归(Partial Least Squares Regression,PLSR)
- Sammon Mapping
- 多维尺度(Multidimensional Scaling,MDS)
- 投影寻踪(Projection Pursuit)
- 线性判别分析(Linear Discriminant Analysis,LDA)
- 混合判别分析(Mixture Discriminant Analysis,MDA)
- 二次判别分析(Quadratic Discriminant Analysis,QDA)
- 灵活判别分析(Flexible Discriminant Analysis,FDA)
11.模型融合算法
该算法是由多个经过训练的弱模型所组成。它将单独的预测以某种方式整合成为一个更好的。可见,模型融合算法是一类非常强大、且备受欢迎的技术。最流行的模型融合算法包括:
- Boosting
- Bootstrapped Aggregation (Bagging)
- AdaBoost
- 堆叠泛化(混合)Stacked Generalization (blending)
- Gradient Boosting Machines (GBM)
- Gradient Boosted Regression Trees (GBRT)
- 随机森林(Random Forest)
常见的机器学习算法一览
1.朴素贝叶斯分类器算法
一般情况下,我们很难对某个网页、文档、或电子邮件进行准确的分类,特别是那些含有冗长的文字信息、且需要手动分拣的内容。而这恰好是朴素贝叶斯分类器算法的用武之地。而且,其分类器具有为某个元素分配相似度值的功能。
例如,垃圾邮件过滤就是朴素贝叶斯算法的一个普遍的应用。此处的垃圾邮件过滤器就充当了分类器的作用,给所有的邮件分配“垃圾邮件”或“非垃圾邮件”的标签。大体说来,它是相似度类型机器学习算法中最为流行的一种。其工作基本原理就是基于贝叶斯定理,对各种单词予以简单分类,实现对内容的主观分析。
2.K-均值聚类算法
K-均值是一种使用无监督机器学习的聚类分析算法。同时,它属于一种非确定性的迭代方法。该算法对于给定数据集里的预设数量类别(如k)进行操作。因此,K-均值算法的输出是在聚类中,从输入数据分离出的k个划分簇。
3.支持向量机算法
该算法是一种使用监督机器学习的算法,可用于分类和回归分析。SVM(支持向量机,https://data-flair.training/blogs/svm-support-vector-machine-tutorial/)能够对任何新的数据集进行分类。其工作原理是:通过将训练数据集分成不同的类别,以发现某个线性特征,并由多个线性构造出一些超平面。因此,SVM需要最大化各种类别之间的距离,即:标识出边缘的最大化,以增加看不见数据的概率。SVM一般分为两类:
- 线性SVM – 通过某个超平面,将训练数据线性分隔出类别。
- 非线性SVM – 无法通过某个超平面,对训练数据进行分隔。
4.先验算法
该算法是一种无监督式的机器学习算法。我们使用它从给定的数据集中产生关联规则。这里的关联规则是指:“如果A项发生,则B项也会发生”的一定概率,通常以IF_THEN的形式产生。
例如:如果某人买了一个iPad,那么他也会去购买一个iPad外壳来保护它。因此,该算法的基本工作原理是:如果某项经常发生,那么该项的所有子集也会频繁发生。反之,如果某项只是偶尔发生,那么其所有超集也极少会发生。
5.线性回归算法
该算法能够通过两个变量之间的关系,展示一个变量(自变量)是如何影响另一个变量(因变量)的,即它们之间的依赖关系。纵然自变量不断变化,因变量却时常有相似的预测因子。
6.决策树算法
我们通常用一个图形来表示决策树,即:通过使用分支的方法,来说明某个决策的所有可能结果。在决策树中,每一个分支节点都代表对于某个属性的测试性结果。同时,叶子节点则代表特定类别的标签,即:计算了所有属性之后,所作出的决策。此外,我们可通过从根到叶子节点的路径来表示某一种分类。
7.随机森林算法
这是转向(go-to)类型的机器学习算法。我们使用一种bagging的方法,来创建一组带有数据的随机子集的决策树。我们需要通过随机森林算法,针对某个模型数据集上的随机样本进行多次训练,综合所有决策树的输出结果,并对每一个决策树的结果进行轮询投票(polling),以实现良好的最终预测效果。
8.逻辑回归算法
此类算法属于一种广义的线性回归,它将逻辑函数应用到了某些特征的线性组合之中,通过各种预测变量,来预测出已分类的因变量结果,同时也描述出自变量的权重概率。
结论
综上所述,我们讨论了机器学习算法、及其不同的分类,其中包括:回归算法、基于实例的算法、正则化算法、决策树算法、贝叶斯算法、聚类算法、关联规则学习算法、人工神经网络算法、深度学习算法、降维算法、模型融合算法、监督学习、无监督学习、半监督学习、朴素贝叶斯分类器算法、K-均值聚类算法、支持向量机算法、先验算法、线性回归和逻辑回归。相信我们上述图文并茂的讲解方式一定能让您有所收获。
原文标题:Top Machine Learning Algorithms You Should Know to Become a Data Scientist ,作者:Rinu Gour
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】