概述
1机器学习简介
机器学习是一门多学科交叉专业,涵盖概率论知识,统计学知识,近似理论知识和复杂算法知识,使用计算机作为工具并致力于真实实时的模拟人类学习方式, 并将现有内容进行知识结构划分来有效提高学习效率。
目前看来主要是通过各种数学模型,对数据进行处理,包括分类和预测。分类,比如据一堆属性,识别是猫是狗;预测,比如给你一个人一些体检数据,预测该人健康程度甚至患癌概率等等。
2机器学习算法分类
2.1监督与非监督
在机器学习中,无监督学习主要就是聚类,事先不知道样本的类别,通过某种办法,把相似的样本放在一起归位一类;而监督型学习就是有训练样本,带有属性标签,也可以理解成样本有输入有输出。
所有的回归算法和分类算法都属于监督学习。
还有半监督学习,半监督学习在训练阶段结合了大量未标记的数据和少量标签数据。
2.2分类与回归
所有的回归算法和分类算法都属于监督学习。
回归和分类的算法区别在于输出变量的类型,定量输出称为回归,或者说是连续变量预测;定性输出称为分类,或者说是离散变量预测。
2.3频率派与贝叶斯
频率学派认为世界是确定的,有一个本体,这个本体的真值是不变的,我们的目标就是要找到这个真值或真值所在的范围;而贝叶斯学派认为世界是不确定的,人们对世界先有一个预判,而后通过观测数据对这个预判做调整,我们的目标是要找到最优的描述这个世界的概率分布。
频率派的最终问题求解,是一个优化问题,比如argmin。算法有线性回归、EM算法、SVM等。
贝叶斯派最终问题求解是积分问题,基于后验的积分。
频率学派 - Frequentist - Maximum Likelihood Estimation (MLE,最大似然估计)
贝叶斯学派 - Bayesian - Maximum A Posteriori (MAP,最大后验估计)
(1) 频率学派:存在唯一真值θ。举一个简单直观的例子—抛硬币,我们用P(head)来表示硬币的bias。抛一枚硬币100次,有20次正面朝上,要估计抛硬币正面朝上的bias P(head)=θ。在频率学派来看,θ= 20 / 100 = 0.2,很直观。
当数据量趋于无穷时,这种方法能给出精准的估计;然而缺乏数据时则可能产生严重的偏差。例如,对于一枚均匀硬币,即θ= 0.5,抛掷5次,出现5次正面 (这种情况出现的概率是1/2^5=3.125%),频率学派会直接估计这枚硬币θ= 1,出现严重错误。
(2) 贝叶斯学派: θ是一个随机变量,符合一定的概率分布。在贝叶斯学派里有两大输入和一大输出,输入是先验 (prior)和似然 (likelihood),输出是后验 (posterior)。
2.4单独与集成
集成指多个算法集成在一起,以达到比单独一个算法取得更好的效果。
常见的集成算法:bagging、boosting、stacking、xgboost。
2.5按技术分类
3机器学习算法汇总
3.1逻辑回归LR
Logistic回归虽然名字里带“回归”,但是它实际上是一种分类方法,主要用于两分类问题,利用Logistic函数(或称为Sigmoid函数),自变量取值范围为(-INF, INF),自变量的取值范围为(0,1),函数形式为:
LR分类器(Logistic Regression Classifier)目的就是从训练数据特征学习出一个0/1分类模型。
3.2决策树
决策树算法根据数据的属性采用树状结构建立决策模型, 决策树模型常常用来解决分类和回归问题。常见的算法包括:分类及回归树(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)。
3.2.1随机森林
随机森林是一个包含多个决策树的分类器, 并且其输出的类别是由个别树输出的类别的众数而定。
随机森林也算集成算法。
针对回归问题,随机森林中的决策树会预测Y的值(输出值)。通过随机森林中所有决策树预测值的平均值计算得出最终预测值。而针对分类问题,随机森林中的每棵决策树会预测最新数据属于哪个分类。最终,哪一分类被选择最多,就预测这个最新数据属于哪一分类。
3.3贝叶斯
贝叶斯公式:
贝叶斯方法算法是基于贝叶斯定理的一类算法,主要用来解决分类和回归问题。常见算法包括:朴素贝叶斯算法,平均单依赖估计(Averaged One-Dependence Estimators, AODE),以及Bayesian Belief Network(BBN)
3.3.1朴素贝叶斯算法
3.4支持向量机
3.4.1线性可分SVM
一条线或一个超平面将两类样本区分开。从二维扩展到多维空间中时,将 D1 和D2 完全正确地划分开的 WX+B=0就成了一个超平面。
3.4.2非线性/核函数SVM
将二维线性不可分样本映射到高维空间中,让样本点在高维空间线性可分。
低维空间映射到高维空间后维度可能会很大,如果将全部样本的点乘全部计算好,这样的计算量太大了。
但如果我们有这样的一核函数 k(x,y)=(Ф(x),Ф(y)), x与 y 在特征空间的内积等于它们在原始样本空间中通过函数 k(x,y) 计算的结果,我们就不需要计算高维甚至无穷维空间的内积了。
核函数的引入一方面减少了我们计算量,另一方面也减少了我们存储数据的内存使用量。
3.4.3支持向量回归SVR
支持向量机(SVM)本身是针对二分类问题提出的,而SVR(支持向量回归)是SVM(支持向量机)中的一个重要的应用分支。SVR回归与SVM分类的区别在于,SVR的样本点最终只有一类,它所寻求的最优超平面不是SVM那样使两类或多类样本点分的“最开”,而是使所有的样本点离着超平面的总偏差最小。
SVM是要使到超平面最近的样本点的“距离”最大;
SVR则是要使到超平面最远的样本点的“距离”最小。
回归就像是寻找一堆数据的内在的关系。不论这堆数据有几种类别组成,得到一个公式,拟合这些数据,当给个新的坐标值时,能够求得一个新的值。所以对于SVR,就是求得一个面或者一个函数,可以把所有数据拟合了(就是指所有的数据点,不管属于哪一类,数据点到这个面或者函数的距离最近)。
传统的回归方法当且仅当回归f(x)完全等于y时才认为是预测正确,需计算其损失;而支持向量回归(SVR)则认为只要是f(x)与y偏离程度不要太大,既可认为预测正确,不用计算损失。具体的就是设置一个阈值α,只是计算 |f(x) - y| > α 的数据点的loss。如图:支持向量回归表示只要在虚线内部的值都可认为是预测正确,只要计算虚线外部的值的损失即可。
3.5EM算法
最大期望算法(Expectation-Maximization algorithm, EM). EM算法的标准计算框架由E步(Expectation-step)和M步(Maximization step)交替组成,算法的收敛性可以确保迭代至少逼近局部极大值。
EM算法及其改进版本被用于机器学习算法的参数求解,常见的例子包括高斯混合模型(Gaussian Mixture Model, GMM) 、概率主成份分析(probabilistic Principal Component Analysis) 、隐马尔可夫模型(Hidden Markov Model, HMM) 等非监督学习算法。EM算法可以给出隐变量,即缺失数据的后验q(Z|X,θ) ,因此在缺失数据问题(incomplete-data probelm)中有应用。
3.6聚类算法
3.6.1非监督k-Means
先随机选取K个对象作为初始的聚类中心。然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。一旦全部对象都被分配了,每个聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是以下任何一个:
1)没有(或最小数目)对象被重新分配给不同的聚类。
2)没有(或最小数目)聚类中心再发生变化。
3)误差平方和局部最小。
k均值聚类是使用最大期望算法(Expectation-Maximization algorithm)求解的高斯混合模型(Gaussian Mixture Model, GMM)在正态分布的协方差为单位矩阵,且隐变量的后验分布为一组狄拉克δ函数时所得到的特例 。
3.7KNN分类算法
KNN是监督学习、分类算法。
K N N即K-Nearest Neighbor,是一种memory-based learning,也叫instance-based learning,属于lazy learning。即它没有明显的前期训练过程,而是程序开始运行时,把数据集加载到内存后,不需要进行训练,就可以开始分类了。 K N N也是一种监督学习算法,通过计算新数据与训练数据特征值之间的距离,然后选取K(K>=1)个距离最近的邻居进行分类判(投票法)或者回归。若K=1,新数据被简单分配给其近邻的类。
步骤
1)计算测试数据与各个训练数据之间的距离;可以使用欧式距离的公式来进行计算。
2)按照距离的递增关系进行排序;
3)选取距离最小的K个点(k值是由自己来确定的)
4)确定前K个点所在类别的出现频率;
5)返回前K个点中出现频率最高的类别作为测试数据的预测分类。
3.8降维算法
主成分分析算法(PCA)是最常用的线性降维方法,它的目标是通过某种线性投影,将高维的数据映射到低维的空间中,并期望在所投影的维度上数据的信息量最大(方差最大),以此使用较少的数据维度,同时保留住较多的原数据点的特性。
常见的算法包括:主成分分析(Principle Component Analysis, PCA),偏最小二乘回归(Partial Least Square Regression,PLS), Sammon映射,多维尺度(Multi-Dimensional Scaling, MDS), 投影追踪(Projection Pursuit)等。
3.9关联规则学习
关联规则学习通过寻找最能够解释数据变量之间关系的规则,来找出大量多元数据集中有用的关联规则。常见算法包括 Apriori算法和Eclat算法等。
3.9.1 Apriori算法
该算法的基本思想是:首先找出所有的频集,这些项集出现的频繁性至少和预定义的最小支持度一样。然后由频集产生强关联规则,这些规则必须满足最小支持度和最小可信度。然后使用第1步找到的频集产生期望的规则,产生只包含集合的项的所有规则,其中每一条规则的右部只有一项,这里采用的是中规则的定义。一旦这些规则被生成,那么只有那些大于用户给定的最小可信度的规则才被留下来。为了生成所有频集,使用了递归的方法。
支持度(support):support(A=>B) = P(A∪B),表示A和B同时出现的概率。
置信度(confidence):confidence(A=>B)=support(A∪B) / support(A),表示A和B同时出现的概率占A出现概率的比值。
频繁项集:频繁项集挖掘是数据挖掘研究课题中一个很重要的研究基础,它可以告诉我们在数据集中经常一起出现的变量,为可能的决策提供一些支持。
强关联规则:满足最小支持度和最小置信度的关联规则。
3.10集成算法
3.10.1boosting
Boosting 的思想,三个臭皮匠顶一个诸葛亮:
1)给定初始训练数据,由此训练出第一个基学习器;
2)根据基学习器的表现对样本进行调整,在之前学习器做错的样本上投入更多关注;
3)用调整后的样本,训练下一个基学习器;
4)重复上述过程 T 次,将 T 个学习器加权结合。
简单讲,就是每次训练单个弱学习器时,都将上一次分错的数据权重提高一点再进行当前单个弱学习器的学习。这样越往后执行,训练出的单个弱学习器就会越在意那些容易分错(权重高)的点。当执行 M 次后,通过加权求和的方式组合成一个最终的学习器。
Boosting模型可以抽象为一个前向加法模型(additive model):
3.10.2bagging
Bagging是通过结合几个模型降低泛化误差的技术。主要想法是分别训练几个不同的模型,然后让所有模型表决测试样例的输出。
给定一个大小为n的训练集D,Bagging算法从中均匀、有放回地(即使用自助抽样法)选出m个大小为n’的子集Di,作为新的训练集。在这m个训练集上使用分类、回归等算法,则可得到m个模型,再通过取平均值、取多数票等方法,即可得到Bagging的结果。
3.10.3其他集成算法
AdaBoost,堆叠泛化(Stacked Generalization, Blending),梯度推进机(Gradient Boosting Machine, GBM),随机森林(Random Forest),GBDT(Gradient Boosting Decision Tree)。
4强化学习
强化学习把学习看作试探评价过程,Agent选择一个动作用于环境,环境接受该动作后状态发生变化,同时产生一个强化信号(奖或惩)反馈给Agent,Agent根据强化信号和环境当前状态再选择下一个动作,选择的原则是使受到正强化(奖)的概率增大。选择的动作不仅影响立即强化值,而且影响环境下一时刻的状态及最终的强化值。
包括Q-learning、Sarsa、DQN、Policy Gradient、Actor-Critic等。
5深度神经网络
玻尔兹曼机、DNN、CNN、RNN、LSTM等,以及梯度下降、激活函数、正则化
最后
以上就是要减肥八宝粥为你收集整理的机器学习算法分类与汇总的全部内容,希望文章能够帮你解决机器学习算法分类与汇总所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复