我是靠谱客的博主 安静马里奥,最近开发中收集的这篇文章主要介绍生成模型(Generative model)和判别模型(Discriminative model)生成模型(Generative model)和判别模型(Discriminative model),觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
生成模型(Generative model)和判别模型(Discriminative model)
典型的生成模型和判别模型分别有哪一些
生成模型 | 判别模型 |
---|---|
1. HMM 2. 朴素贝叶斯 3. CRF | 1. Logistics Regression 2. SVM 3. 决策树 4. 感知机 5. K近邻 6. EM 7. Boosting |
生成模型和判别模型的区别
生成方法:由数据学习联合概率分布
P
(
X
,
Y
)
P(X,Y)
P(X,Y),然后求出条件概率分布
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X),作出预测的模型,即生成模型:
P
(
Y
∣
X
)
=
P
(
X
,
Y
)
P
(
X
)
P(Y|X) = frac{P(X,Y)}{P(X)}
P(Y∣X)=P(X)P(X,Y)
判别方法:由数据直接学习决策函数
f
(
X
)
f(X)
f(X)或者条件概率分布
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)作为预测的模型,即判别模型
生成模型和判别模型的特点
生成模型:
- 生成方法可以还原出联合概率分布
P
(
X
,
Y
)
P(X,Y)
P(X,Y), 还可以给出其他信息如:边缘分布
P ( x ~ ) = ∑ i = 1 k P ( x ~ ∣ y ~ i ) ∗ P ( y ~ i ) P(tilde x) = sum^{k}_{i=1}P(tilde x | tilde y_i) * P( tilde y_i) P(x~)=i=1∑kP(x~∣y~i)∗P(y~i) - 生成模型的收敛效果更快,即当样本容量增加是,生成模型可以更快的收敛于真实模型
- 生成模型可以应付存在隐变量的情况
判别模型:
- 直接面对预测,往往学习的准确度更好
- 由于直接学习 P ( y ~ ∣ x ~ ) P(tilde y|tilde x) P(y~∣x~),可以对数据进行各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题。
关于这一点,个人认为可以先记住哪些算法属于哪一类模型,然后结合模型特点和具体算法的特点来记,如:决策树属于判别模型,他也可以用来抽象特征(信息熵、信息熵增益),知道了哪些特征更重要,简化了分类难度。
举例说明生成模型和判别模型
生成模型:
以朴素贝叶斯为例:
- 设特征 x = { x 1 , x 2 , … , x m } x = { x_1,x_2,…,x_m} x={x1,x2,…,xm},每一个分量表示为特征的一个属性维度
- 设类别集合 C = y 1 , y 2 , … , y n C = y_1,y_2,…,y_n C=y1,y2,…,yn
- 分别计算特征
x
x
x属于每一个类别的概率大小:
P
(
y
1
∣
x
)
P(y_1|x)
P(y1∣x),
P
(
y
2
∣
x
)
P(y_2|x)
P(y2∣x).…,
P
(
y
n
∣
x
)
P(y_n|x)
P(yn∣x)
概率大小通过贝叶斯公式可得: P ( y i ∣ x ) = P ( x ∣ y i ) P ( y i ) P ( x ) = ∏ j = 1 m P ( x j ∣ y i ) P ( y i ) P ( x ) P(y_i|x) = frac{P(x|y_i)P(y_i)}{P(x)} = frac{prod^m_{j=1}P(x_j|y_i)P(y_i)}{P(x)} P(yi∣x)=P(x)P(x∣yi)P(yi)=P(x)∏j=1mP(xj∣yi)P(yi) - 特征 x x x类别为最大的概率对应的类别, a r g m a x y i P ( y i ∣ x ) argmax_{y_i}P(y_i|x) argmaxyiP(yi∣x)
判别模型:
以LR为例:
特征进行输入后,并不会去计算一个
P
(
y
i
∣
x
)
P(y_i|x)
P(yi∣x)的概率,而是直接由决策函数
f
(
x
)
f(x)
f(x)给出了概率。
参考: 李航 《统计学习方法》
最后
以上就是安静马里奥为你收集整理的生成模型(Generative model)和判别模型(Discriminative model)生成模型(Generative model)和判别模型(Discriminative model)的全部内容,希望文章能够帮你解决生成模型(Generative model)和判别模型(Discriminative model)生成模型(Generative model)和判别模型(Discriminative model)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复