lecture 5 : Gaussian Discriminant Analysis and Naive Bayes

前面我们学习的都是 discriminant learning algorthm, 直接对 p(y|x) 进行建模,或直接学习 XY 的映射。GDA 和 naive bayes 是 generative learning algorithm, 对 p(x|y) 建模,再通过贝叶斯公式计算 p(y|x)=p(x|y)p(y)p(x)

Gaussian Discriminant Analysis

对于输入,这里我们不再延续 x0=1 的传统,xRn

assumption: x|y ~ N(μ,Σ)

multivariate gaussian recap

如果随机变量 Z 服从高斯分布,即 Z ~ N(μ,Σ), ZRn,μRn,ΣRn×n

EZ=μCov(Z)=E((Zμ)(Zμ)T)p(x;μ,Σ)=1(2π)n2|Σ|12exp(12(xμ)TΣ1(xμ))

对于二分类问题:

GDA model:

x|y=0 ~ N(μ0,Σ)

x|y=1 ~ N(μ1,Σ)

y ~ Ber(ϕ)

共有 μ0,μ1,Σ,ϕ 这几个参数。

对于数据集 {(x(i),y(i))}i=1m

可以计算联合概率

L(ϕ,μ0,μ1,Σ)=i=1mp(x(i),y(i);ϕ,μ0,μ1,Σ)=i=1mp(x(i)|y(i))p(y(i))l(ϕ,μ0,μ1,Σ)=log(L(ϕ,μ0,μ1,Σ))

最优化目标即为 l(ϕ,μ0,μ1,Σ), 使用极大似然估计求得参数的估计值。

ϕ=i=1m1{y(i)=1}mμ0=i=1m1{y(i)=0}x(i)i=1m1{y(i)=0}μ1=i=1m1{y(i)=1}x(i)i=1m1{y(i)=1}Σ=1mi=1m(x(i)μy(i))(x(i)μy(i))T

在最后做预测时,预测的标签为:

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

即找出后验概率最大的类别。

与逻辑回归的联系和比较

可以证明,

p(y=1|x;ϕ,μ0,μ1,Σ)=11+exp(θTx),θ=f(ϕ,μ0,μ1,Σ)

这就是 sigmoid 函数,可见 GDA 和 逻辑回归有某种联系。

下面分别看一下这两种模型:

  1. GDA

assumption :

x|y=i ~ N(μi,Σ)

y ~ Ber(ϕ)

  1. Logistic Regression

p(y=1|x)=11+exp(θTx)

可以证明 GDA's assumption implies LR's assumption, but LR's assumption does not implies GDA's assumption. 可见 GDA 做了一个更强的假设。

这使得我们在应用时应该合理地选择模型,如果我们能确定数据来源符合 GDA 的假设或者近似符合,那么 GDA 的效果往往会比逻辑回归好,即使数据集不大,这是因为更强的假设意味着我们告诉了模型更多的信息。(模型的信息来源:数据,假设)但是如果数据不符合 GDA 的假设,我们却采用 GDA 模型,那么效果的好坏就难以确定了,可能刚好还不错,也有可能很差,相比而言逻辑回归更加 robust。

Naive Bayes

用一个例子来讲解朴素贝叶斯模型 : spam Email filter

首先考虑如何标识 input feature vector:

建立一个词典,将特征词放入词典,假设词典大小为 n,那么输入就是一个 n 维向量,如果第 i 个词出现,那么第 i 个分量为 1,否则为 0.

x{0,1}n,xi=1{word i appears in email}

want to model: p(x|y),p(y)

如果 n = 10,000, 那么 x 有 210,000 种可能取值,那么 parameter vector 就有 210,0001 维,这是无法忍受的。

在朴素贝叶斯模型中,假设:

xi s is conditionally independent given y.

在这个例子中,就是说,知道这个邮件是 spam email 这件事之后,知道 xi 是否为 1 对知道 xj 是否为 1 没有影响。

p(x1,...,xn|y)=p(x1|y)p(x2|x1,y)....p(xn|x1,...,y)=p(x1|y)...p(xn|y)

其中第一步不依赖于任何假设,第二步使用了朴素贝叶斯假设。

朴素贝叶斯模型有这些参数

ϕj|y=1=p(xj=1|y=1)ϕj|y=0=p(xj=1|y=0)ϕ=p(y=1)

和 GDA 类似,要求得这些参数,只要使联合概率最大化:

L(ϕy,ϕj|y)=i=1mp(x(i),y(i);ϕy,ϕj|y)

通过求偏导数求得:

ϕy=i=1m1{y(i)=1}mϕj|y=i=1m1{xj(i)=1,y(i)=1}i=1m1{y(i)=1}

在预测的时候,

p(y=1|x)=p(x|y=1)p(y=1)/p(x)=i=1np(xi|y=1)p(y=1)/(i=1np(xi|y=1)p(y=1)+i=1np(xi|y=0)p(y=0))

后验概率最大的那一组即为预测的标签。

posted @   今天AC了吗  阅读(46)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示