[笔记]生成学习算法·GDA·NB

生成学习算法

判别学习算法(Discriminative learning algorithm)

直接学习 p(y|x) ,或者学习得到一个假设,直接输出0、1, hθ(x){0,1} 。例如Logistic回归。
该种模型只是通过一条分隔线把两种类别区分开。

生成学习算法(Generative learning algorithm)

根据特征和类别情况,对 p(x|y) p(y) 进行建模。
在计算分析得到其概率后,根据贝叶斯公式(Bayes rule)

p(y|x)=p(x|y)p(y)p(x)

可推导出y在给定x的概率。
根据贝叶斯公式可以变化为:
Bayes变化
表达式含义为: p(y|x) 取最大值时的y值。
如果 p(y) 是均匀分布(每种类型的概率都相同),那么就等于: argmaxp(x|y)


高斯判别分析

GDA(Gaussian discriminative analysis)是我们要学习的第一个生成学习算法。
GDA的两个前提:

  1. 假设输入特征x∈Rn,并且是连续值
  2. p(x|y) 满足多维正态分布(multivariate normal distribution)

多维正态分布

期望向量[均值向量](mean vector), μn
协方差矩阵(covariance matrix), nn =[(xμ)(xμ)T] >0 ,矩阵对称并且半正定(symmetric and positive semi-definite)。
多维正态分布
协方差为: Cov(X)=
例子1
a.均值为0,协方差矩阵为单位矩阵 I (2*2),成为标准正态分布;
b.均值为0,协方差矩阵0.6I(2*2);
c.均值为0,协方差矩阵 2I (2*2);
例子2
例子3

GDA模型

GDA
参数ϕ, ∑, μ0,μ1 的对数似然性:
对数似然性
其中考虑的是 p(x(i),y(i)) ,联合似然(Joint likelihood);而在logistic回归中考虑的是 p(y(i)|x(i)) ,条件似然(Conditional likelihood)。
求出极大似然估计为:
GDA极大似然估计
μ0,μ1 的含义是:
分母是对应标签(0/1)的样本数,分子是对应标签(0/1)的 x(i) 的和;整体含义为遍历整个集合,求对应标签(0/1)的 x 的均值。
这个算法工作起来就是这样的:
GDA图例

讨论:GDA和Logistic回归

GDA模型和logistic回归有一个很有趣的关系。
如果把p(y=1|x;ϕ,μ0,μ1,) 看成x的函数,则有:
关系
其中,θ是ϕ, ∑, μ0,μ1 的函数,这就很像是 p(y=1|x) 的Logistic回归。
讨论:哪个更好?
如果p(x|y)是一个多维的高斯分布,那么p(y|x)必然能推出一个logistic函数;反之则不能。这是因为GDA做了更强的假设,(x| y)服从高斯分布。
如果数据服从或大致服从高斯分布,那么GDA的性能优于Logistic回归;如果你不确定数据的分布情况,那么Logistic回归表现会更好。
GDA因为是强假设,所以对于建模会使用更少的数据;Logistic由于假设相对较弱,所以有着不错的适应性(鲁棒性),但建模时使用更多的数据。
鲁棒性:
p(x|y=1)ExpFamily(η1)
p(x|y=0)ExpFamily(η0)
能推出 p(y=1|x) 为Logistic回归。


朴素贝叶斯

在GDA模型中,特征向量x是连续的实数向量。如果x是离散值,我们需要不同的学习算法。
举例讲解:垃圾邮件分类(文本分类问题)
首先要输入一封邮件,然后与词典进行比对,如果出现了该词,则设xi=1,否则xi=0,例如:
邮件向量x
我们要对 p(x|y) 建模,如果使用判别模型,那么在词典包含很多词的情况下(极端50000词), x{0,1}50000 ,则我们需要( 2500001 )维的参数向量,这显然是不可行的。
所以我们要用强假设限定 p(x|y) ,假设给定y的时候, xis 条件独立(conditionally independent)的,这就是朴素贝叶斯假设(Naive Bayes assumption),并且这种解决算法被称为朴素贝叶斯分类器(Naive Bayes classifier)。
根据链式法则和朴素贝叶斯假设得:
NB假设
数据的联合似然性(joint likelihood)为:
联合似然性
φi|y=1=p(xi=1|y=1) φi|y=0=p(xi=1|y=1) φy=p(y=1)
得到极大似然估计:
NB极大似然估计
解释 φi|y=1 项:分子,遍历训练样本在标签y=1邮件中词语 xj 出现的次数之和;分母,训练样本中标签y=1邮件的总数;总得来说,在垃圾邮件中见到 xj 词的概率。
m就是训练样本的数量,m封标记着“垃圾“(y=1)和“正常“(y=0)的邮件。
完成上述参数的设置,就可以得到:
这里写图片描述
存在问题:
假设新邮件出现了一个以前邮件从来没有出现的词,模型会认为这个词在任何一封邮件出现的概率为0,这在统计学中是不科学的。


拉普拉斯平滑(Laplace smoothing)

我们使用Laplace平滑来避免朴素贝叶斯出现上述问题。

p(y=1)=#1s+1#0s+1+#1s+1

一般式:
Laplace平滑
朴素贝叶斯问题,通过Laplace平滑:
NBLaplace
问题解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值