机器学习常用算法整理

机器学习常用算法整理

机器学习领域有一条“没有免费的午餐”定理,没有任何一种算法能适用于所有问题,特别是在监督学习中。要判断算法优劣,数据集的大小和结构等众多因素都至关重要。
机器学习算法大多可描述为:学习一个目标函数f,它能够最好地映射出输入变量X到输出变量Y。即:学习Y=f(X)的映射,针对新的X预测Y。

一、 监督学习

1.1、决策树(Decision Trees)

决策树是一种用于对实例进行分类的树形结构。决策树由节点(node)和有向边(directed edge)组成。节点的类型有两种:内部节点和叶子节点。其中,内部节点表示一个特征或属性的测试条件,叶子节点表示一个分类。

决策树学习的关键是如何选择最优划分属性。我们希望决策树的分直接点所包含的样本集可能属于同一类别,即节点的“纯度”(purity)高。

数据集的纯度可用信息熵(information entropy)来度量:
在这里插入图片描述

1.1.1、ID3

ID3决策树学习算法是以信息增益为准则来选择划分属性的。
在这里插入图片描述
信息增益越大,获得的纯度提升也越大。

1.1.2、C4.5

信息增益准则对可取值数目较多的属性有所偏好,为减少这种偏好带来的不利:
C4.5决策树算法是使用增益率来选择最优划分属性。
在这里插入图片描述

1.1.3、CART

CART决策树算法使用基尼指数来选择划分属性。
在这里插入图片描述
剪枝(pruning)是决策树学习算法对付过拟合的主要手段。
过拟合:决策树把训练集自身的一些特点当做所有数据都具有的一般性质。原因是树中的节点太多。
决策树剪枝的基本策略有预剪枝(prepruning)和后剪枝(postpruning)。

1.2、朴素贝叶斯分类(Naive Bayesian classification)

应用举例:判断垃圾邮件,影评分类

当给定一条影评后,我们需要判断出是好评还是差评,用 P ( Y ) P\left ( Y \right ) P(Y)表示影评为好评或差评的概率,每一条影评中,每个单词出现的概率用 P ( X ) P\left ( X \right ) P(X)表示,在相应类别评论中单词 X X X出现的概率为 P ( X ∣ Y ) P\left (X \mid Y \right ) P(XY),最终结果即为求已知某条评论中所有单词出现的概率,求该评论对应的类别 P ( Y ∣ X ) P\left (Y \mid X\right ) P(YX).

条件概率公式:
P ( X = x ∣ Y = y ) = P ( X = x , Y = y ) P ( Y = y ) P(X=x|Y=y) = \frac{P(X=x,Y=y)}{P(Y=y)} P(X=xY=y)=P(Y=y)P(X=x,Y=y)

全概率公式: P ( X = x ) = ∑ i = 1 n P ( Y = y i ) P ( X = x ∣ Y = y i ) P(X=x) = \sum_{i=1}^n P(Y=y_i)P(X=x|Y=y_i) P(X=x)=i=1nP(Y=yi)P(X=xY=yi)

贝叶斯公式: P ( Y = y ∣ X = x ) = P ( X = x , Y = y ) P ( X = x ) = P ( X = x ∣ Y = y ) ∗ ∑ i = 1 n P ( X = x i ) P ( Y = y ∣ X = X i ) P ( X = x ) P(Y=y|X=x) = \frac{P(X=x,Y=y)}{P(X=x)}=\frac{P(X=x|Y=y)*\sum_{i=1}^n P(X=x_i)P(Y=y|X=X_i)}{ P(X=x)} P(Y=yX=x)=P(X=x)P(X=x,Y=y)=P(X=x)P(X=xY=y)i=1nP(X=xi)P(Y=yX=Xi)

朴素:假设属性条件独立性
半朴素:适当考虑一部分属性间的相互依赖信息

1.3、线性回归(Linear Regression)

在这里插入图片描述
线性模型具有很好的可解释性。
在这里插入图片描述
均方误差对应欧氏距离。基于均方误差最小化来进行模型求解的方法称为“最小二乘法”(least square method)。在线性回归中,最小二长发就是试图找到一条直线,使所有样本到直线上的欧氏距离之和最小。

对数线性回归
在这里插入图片描述
在这里插入图片描述

1.4、逻辑回归(Logistic Regression)

又叫对数几率回归。
在这里插入图片描述
对数几率函数是一种“Sigmoid函数”,它将z转化为一个接近0或1的y值。即若预测值z大于零就判为正例,小于零则判为反例,预测值为临界值零则可任意判别。
在这里插入图片描述

对数几率回归模型:
在这里插入图片描述
虽然名字是回归,实际是一种分类方法。可以通过“极大似然法”(maximum likelihood method)来估计 ω \omega ω b b b.

图片截取于西瓜书

1.5、支持向量机(Support Vector Machine,SVM)

核心思想:
找到不同类别之间的分界面,使得两类样本尽量落在面的两边,而且离分界面尽量远。

给定训练样本集
D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } , y i ∈ { − 1 , + 1 } D=\left \{ \left ( x_{1},y_{1} \right ) ,\left ( x_{2},y_{2} \right ),...,\left ( x_{m},y_{m} \right )\right \},y_{i}\in \left \{ -1,+1 \right \} D={(x1,y1),(x2,y2),...,(xm,ym)},yi{1,+1}
最基本的思想就是基于训练集 D D D 在样本空间找到一个划分超平面,将不同类别的样本的分开。能将训练样本分开的划分超平面又很多,我们应该去找最鲁棒的。在样本空间中,划分超平面可通过如下线性方程来描述:
ω T x + b = 0 , \omega ^{^{T}}x+b=0, ωTx+b=0,
其中 ω = ( ω 1 ; ω 2 ; , . . . , ω d ) \omega =\left ( \omega _{1;} \omega _{2;},...,\omega _{d}\right ) ω=(ω1;ω2;,...,ωd)为法向量,决定了超平面的方向; b b b为位移项,决定了超平面与原点之间的距离,显然,划分超平面被法向量 ω \omega ω b b b确定。
样本空间中任意点 x x x到超平面 ( ω , b ) \left ( \omega ,b\right ) (ω,b)的距离可写为:
()…LaTex敲公式好慢,中间就都省略了,参考西瓜书125页到127页)

在现实任务中,如果原始样本空间不是线性可分的,可以利用核函数(kernel function),将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分,进而大大提高SVM的适用范围。(如果原始空间是有限维,即属性数有限,那么一定存在一个高维特征空间使样本可分)

支持向量机的优点:
1、SVM是一种有坚实理论基础的新颖的适用小样本学习方法。它基本上不涉及概率测度及大数定律等,也简化了通常的分类和回归等问题;
2、计算的复杂性取决于支持向量的数目,而不是样本空间的维数,这在某种意义上避免了“维数灾难”
3、有较好的鲁棒性和优秀的泛化能力

支持向量机的两个缺点:
1、SVM数据对大规模数据难以实施
2、SVM解决多分类问题存在困难

1.6、K最近邻(k-Nearest neighbours,KNN)

思路:
如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。

KNN算法不仅可以用于分类,还可以用于回归。通过找出一个样本的K个最近邻居,将这些邻居的属性的平均值赋给该样本,就可以得到该样本的属性。更有用的方法是将不同距离的邻居对该样本产生的影响给予不同的权值。

应用举例:创建推荐系统

不足:
1、当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。(可利用权值来改进)。
2、计算量较大,因为对每一个待分类的样本都要计算它到全体已知样本的距离,才能求得它的K个最近邻点。(解决方法:事先对已知样本点进行剪辑,事先去除对分类作用不大的样本)。

1.7、最大期望算法(Expectation-maximization algorithm,EM)

1、什么是EM算法?
最大期望算法是一类通过迭代进行极大似然估计(Maximum Likelihood Estimation,MLE)的优化算法。
2、什么是极大似然估计?
比如,在你面前出现一个白人,你来判断这个人来自哪个大洲。不出意外,你会说来自欧洲。这便是用了极大似然估计的思想。
最大似然估计的目的就是:利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值。
3、求最大似然函数估计值的一般步骤:
(1)写出似然函数;
(2)对似然函数取对数,并整理;
(3)求导数,令导数为0,得到似然方程;
(4)解似然方程,得到的参数即为所求。
参考1:https://blog.csdn.net/fuqiuai/article/details/79484421
参考2:https://blog.csdn.net/cherrylvlei/article/details/81608236
参考3:https://blog.csdn.net/qq_39355550/article/details/81809467
这里百度百科讲的很详细还有例题:https://baike.baidu.com/item/%E6%9C%80%E5%A4%A7%E4%BC%BC%E7%84%B6%E4%BC%B0%E8%AE%A1/4967925?fr=aladdin
4、EM算法的步骤:
EM算法是估计参数隐变量的利器,两个步骤交替计算:第一步是期望(E)步,利用当前估计的参数值来计算对数似然的期望值;第二步是最大化(M)步,寻找能使E步产生的似然期望最大化的参数值。然后新得到的参数值重新被用于E步,…,直至收敛到局部最优解。

1.8 、集成学习

集成学习的主要思路是先通过一定的规则生成多个学习器,再采用某种集成策略进行组合,最后综合判断输出最终结果。
在这里插入图片描述

1、一般来说集成学习可以分为三大类:
(1)用于减少方差的bagging
(2)用于减小偏差的boosting
(3)用于提升预测效果的stacking

2、或者分为两大类:
(1)个体学习器间存在强依赖关系、必须串行生成的序列化方法(Boosting)
(2)个体学习器间不存在强依赖关系、可同时生成的并行化方法(Bagging,Random Forest)

3、booststraping
自助采样法,生成一系列boostrap伪样本,每一个样本是初始数据有放回的抽样。

4、bagging
bootstrap aggregating的缩写,套袋法。
该学习算法训练多轮,每轮的训练集由从初始的训练集中随机取出的n个训练样本组成,某个初始训练样本可以出现多次或根本不出现,训练之后可得到一个预测函数序列,最终的预测函数对分类问题采用投票方式,对回归问题采用简单平均方法对新实例进行判别。

5、Boosting
Boosting属于一种算法框架,它会产生一系列分类器,然后对这些分类器进行加权融合。
Boosting族算法最著名的代表是AdaBoost:
Adaboost是Adaptive boosting的缩写,意思是自适应增强。
该算法通过不断迭代并根据每次迭代的误差率赋予当前基础分类器权重,同时,自动调整样本权重,最后把所有的分类器通过线性整合,形成一个性能优良的强分类器。
6、Bagging和Boosting的区别
(1)样本选择上:
Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的
Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权重是根据上一轮的分类结果进行调整
(2)样例权重
Bagging:使用均匀取样,每个样例的权重相等
Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大
(3)预测函数:
Bagging:所有预测函数的权重相等
Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重
(4)并行计算
Bagging::各个预测函数可以并行生成
Boosting:各个预测函数只能顺序生成,因为后一个模型需要前一轮模型的结果。

7、Gradient Boosting
Gradient Boosting是一种实现Boosting的方法,它的主要思想是:
每一次建立模型是在之前建立模型损失函数的梯度下降方向。
损失函数越大,说明模型越容易出错,如果我们的模型能让损失函数持续下降,则说明模型在不断改进,而最好的方式就是让损失函数在其梯度的方向上下降。
残差迭代树,(Gradient Boosting Decision Tree,GBDT)认为每一棵树都在学习前N-1棵树的残差

8、Bagging+决策树=Rand Forest
Adaboost+决策树=提升树
Gradient Boosting +决策树 = GBDT

9、组合策略有:
(1)、简单平均法(simple averaging)
在这里插入图片描述
(2)、加权平均法(weighted averaging)
在这里插入图片描述
(3)、绝对多数投票法(majority voting)
在这里插入图片描述
即若某标记得票过半数,则预测为该标记;否则拒绝预测
(4)、相对多数投票法(plurality voting)
在这里插入图片描述
即预测为得票最多的标记,若同时有多个标记获最高票,则从中随机选取一个
(5)、加权投票法(weighted voting)
在这里插入图片描述
参考西瓜书
参考链接1:https://www.jianshu.com/p/c7d0a610bfd5
参考链接2:https://www.cnblogs.com/earendil/p/8872001.html

1.9、概率图模型(Probabilistic graphical model)

概率图模型是一类用图来表达变量相关关系的概率模型。概率模型提供了一种描述框架,将学习任务归结于计算变量的概率分布。
概率图模型分为两类:
(1)有向图模型(贝叶斯网):使用有向环图表示变量间的依赖关系
(2)无向图模型(马尔可夫网):使用无向图表示变量间的相关关系

1.9.1、隐马尔可夫模型(Hidden Markov Model,HMM)

隐马尔可夫模型是结构最简单的动态贝叶斯网。
马尔可夫链:系统下一时刻的状态仅由当前状态决定,不依赖于以往的任何状态。
在这里插入图片描述

1.9.2、马尔可夫随机场(Markov Random Field,MRF)

马尔可夫随机场是典型的马尔可夫网。
在这里插入图片描述

1.9.3、条件随机场(Conditional Random Field,CRF)

条件随机场是一种判别式无向图模型。
生成式模型是直接对联合分布进行建模,而判别式模型则是对条件分布进行建模。隐马尔可夫模型和马尔可夫随机场都是生成式模型1,而条件随机场是判别式模型。
在这里插入图片描述

1.10、正则化(Regularization)

正则化是一种在统计模型中试图解决过拟合的技巧。
正则化的一般形式:
在这里插入图片描述
其中,第一项是损失函数(经验风险),第二项是正则化,lamda>=0是调整损失函数和正则化项的系数。
从上式可以看出,加上惩罚项后损失函数的值会变大,要想损失函数最小,惩罚项的值要尽可能的小,模型参数就要尽可能的小,这样就能见效模型参数,使得模型更加简单。
通常采用模型参数向量的范数作为正则化函数:
L0范数:向量中非0的元素的个数
L1范数:权重参数W的各项元素绝对值之和
L2范数:权重参数W的各项元素的平方和的平方根
L1范数比L2更易于获得稀疏解,即它求得的 ω \omega ω会有更多的非零分量:

二、无监督学习

2.1、聚类算法(Clustering Algorithms)

将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。

2.1.1、K-Means聚类

算法步骤:
(1)、在数据集中随机选择k个样本作为初始均值向量。
(2)、考察每个样本点与当前均值向量的距离,样本点距离哪个均值最近就划分到哪一类中。
(3)、根据当前的簇划分,计算新的均值向量。
(4)、重复以上步骤,直到均值向量变化不大为止,得到最终的簇划分。

2.2、主成分分析(Principal Componet Analysis,PCA)

这部分的原文链接 https://blog.csdn.net/program_developer/article/details/80632779
降维:在减少需要分析的指标同时,尽量减少原指标包含信息的损失

PCA的思想是将n维特征映射到k维上(k<n),这k维是全新的正交特征称为主成分,是重新构造出来的k维特征,而不是简单地从n维特征中去除其余n-k维特征。

第一个新坐标轴选择是原始数据中方差最大的方向,第二个新坐标轴选取是与第一个坐标轴正交的平面中使得方差最大的,第三个轴是与第1,2个轴正交的平面中方差最大的。

如何得到这些包含最大差异性的主成分方向呢?
通过计算矩阵的协方差矩阵,然后得到协方差矩阵的特征值特征向量,选择特征值最大的k个特征所对应的特征向量组成的矩阵。

样本均值:
在这里插入图片描述
样本方差:
在这里插入图片描述
样本X和样本Y的协方差:
在这里插入图片描述
协方差为正时,说明X和Y是正相关关系;协方差为负时,说明X和Y是负相关关系;协方差为0时,说明X和Y相关性为0。Cov(X,Y)就是X的方差。当样本是n维数据时,他们的协方差实际上是协方差矩阵(对称方阵)。例如,对于3维矩阵(x,y,z),计算它的协方差是:
在这里插入图片描述
PCA算法:
(1)、去中心化,即每一位特征减去各自的平均值
(2)、计算协方差矩阵 1 n X X T \frac{1}{n}XX^{T} n1XXT
(3)、求协方差矩阵的特征值和特征向量
(4)、对特征值从大到小排序,选择其中最大的k个。然后将其对应的k个特征向量分别作为行向量组成特征向量矩阵P
(5)、将数据转换到k个特征向量构建的新空间中,即Y=PX

参考1
参考2
参考3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值