我们之前学习的算法都是基于p(y|x;θ), 他的思想是找出找出一个决策边界来将两类分开,而生成算法是先对两个类别分别建模,为了将样本分开,将样本代入两个模型,看样本与哪个类别更匹配。
这种试图直接从输入x映射到类别标签{0,1}的算法被称为判别学习算法;而通过计算p(x|y)(和p(y))来得到模型的算法被称为生成学习算法
通过贝叶斯函数得到p(y|x)=p(x|y)p(y)p(x),
argmaxyp(y|x)=argmaxyp(x|y)p(y)p(x)=argmaxyp(x|y)p(x)
- 高斯判决分析(GDA, Gaussian discriminant analysis)
假设p(x|y)服从多元正太分布.
- 多元正太分布
Cov(X)=Σ=E[(X?E(X)(X?E(X))T)]=E[XXT]?(E[X]E[X]T)
左图Σ=I,中图Σ=0.6I,右图Σ=2I,可以看到随着协方差增大,分布越趋近”扁平”。
随着协方差非对角线元素的增大,分布越趋于正45度方向压缩
随着协方差非对角线元素的减小, 分布逐渐向-45度方向压缩。右图显示,任意地改变参数分布投影趋近椭圆。
- 高斯判决分析模型(GDA)
- 应用条件:特征x为连续随机变量
- 模型:用多远正态分布给f(x|y)建模,模型如下:
即:
从上式可以看出这个模型通常采用不同的均值,相同的方差。即模型的参数为?,Σ,μ0,μ1,写成对数形式如下:
参数计算如下
样本分布图
- 高斯决策模型与逻辑回归的关系
如果将p(y=1|x;?,μ0,μ1,Σ)看成关于x的函数,则其形式可以改写成:
这正是LR的形式。即如果p(x|y)符合多元高斯分布且共享Σ,则p(y|x)将符合Logistics函数的形式,但这只是充分不必要条件,f(y|x)若符合Logistic函数,不能推出f(x|y)符合多元正太分布。
GDA与LR的比较:
- GDA对x具有很强的假设(服从多元正太分布),如果满足则能更好的适应样本,会是更好的模型,且asymptotically efficient;在大的训练样本的前提下,没有模型能比GDA更好。但是LR鲁棒性更强,不要求x一定符合高斯分布;
- GDA需要的训练样本比LR更少
实际中由于LR对数据先验概率的适应性而更多的被使用。
- 多元正太分布
- 朴素贝叶斯(Naive Bays):适用于文本分类
GDA中,要求x是连续的向量,而朴素贝叶斯则是针对输入x是离散变量的情况。
- 朴素贝叶斯假设
假设当给定y时向量x的各个分量相互独立
- 推论
p(x1,...,x50000)=p(x1|y)p(x2|y,x1)p(x3|y,x1,x2)...p(x3|y,x1,x2,...x49999)=p(x1|y)p(x2|y)p(x3|y)p(x50000|y)=∏i=1np(xi|y)
以垃圾邮件过滤为例,假设样本是如下所示的向量,每个元素对应词汇表中一个词汇,如果邮件中存在对应词则置为1否则为0;
那么模型参数是
?i|y=1=p(xi=1|y=1)?i|y=0=p(xi=1|y=0)?y=p(y=1),对于训练集{(x(i),y(i));i=1,2,...,m},可以写出如下联合似然函数:
- 朴素贝叶斯假设
- Laplace平滑
上面的朴素贝叶斯有一个问题,当有一个此前从未出现的词出现在一个新的email中时,由于:
从而使
造成无法判决。
为避免这种情况,可以使用拉普拉斯平滑法:
其中k为z可能取值的数量。
- 文本分类事件模型(Event models for text classification)
在的朴素贝叶斯模型是基于多元伯努利分布(x向量元素只能取0或1),其生成一封邮件的过程是
与不素贝叶斯模型不同的是,多项事件模型(multinomal event model)表示一封邮件的向量x中的元素取自{1,2,…,|V|}, 其中,V为字典长度,这样,一封邮件就被表示成长度等于邮件词汇数的向量。该模型生成邮件的过程是这样的:
虽然概率形式上和朴素贝叶斯很相似,但是其含义发生了很大的变化,特别是xi|y已经变成了多项式分布。
参数:
使用拉普拉斯平滑后的参数:
(斯坦福机器学习笔记)