上篇文章提到了Linear SVM 和 LR 的联系和区别,提到了它们都是判别模型。但是什么是判别模型呢,与其相对应的生成模型又有哪些呢。本文来总结一下。以下部分主要参考了李航那本《统计学习方法》
判别模型和生成模型都是指监督学习下的模型,监督学习模型本质上就是求决策函数:
Y
=
F
(
X
)
Y=F(X)
Y=F(X)
或者条件概率分布:
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)
而求解过程又可以分为判别方法和生成方法
#生成模型 (generative)
生成方法必须要学得其联合概率分布
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)
生成模型以概率的方式描述了数据的产生方式,通过对模型采样就可以产生数据。
常见的生成模型有朴素贝叶斯法和隐马尔科夫模型还有EM
比如朴素贝叶斯就是根据
P
(
X
,
Y
)
=
P
(
X
∣
Y
)
∗
P
(
Y
)
P(X,Y) = P(X|Y)*P(Y)
P(X,Y)=P(X∣Y)∗P(Y)来求得
P
(
X
,
Y
)
P(X,Y)
P(X,Y)
因为朴素贝叶斯的条件独立假设,则
P
(
X
∣
Y
)
=
P
(
X
1
∣
Y
)
×
P
(
X
2
∣
Y
)
×
⋯
×
P
(
X
n
∣
Y
)
P(X|Y) = P(X_1|Y) \times P(X_2|Y) \times\cdots \times P(X_n|Y)
P(X∣Y)=P(X1∣Y)×P(X2∣Y)×⋯×P(Xn∣Y)
又因为分母P(X)大家都一样,所以只用比较分子就好
#判别模型(discriminative)
判别模型是由数据直接学习决策函数
F
(
x
)
F(x)
F(x)或者条件概率分布
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)作为预测的模型。判别方法关心的是对于给定的输入
X
X
X,应该预测什么样的
Y
Y
Y
常见的生成模型包括K近邻法,感知机,决策树,LR,SVM等等
#生成模型和判别模型的区别和联系
- 由生成模型可以得到判别模型,但是由判别模型得不到生成模型
- 生成模型可以产生数据,判别模型只能根据数据做判断。生成模型为了得到数据的整体分布。判别模型为了用「线」把数据划开。
- 判别模型优点:
- 判别模型对数据的分布的假设要求不高,鲁棒性较好,即便是在模型不符合数据假设的情况下,效果通常也会比较好
- 直接面对预测,往往在学习的准确率上会更高
- 由于直接学习 P ( Y ∣ X ) P(Y|X) P(Y∣X)或者 F ( x ) F(x) F(x),可以对数据进行各种程度上的抽象,定义特征并且使用特征,因此可以简化学习的问题。
- 生成模型的优点:
- 生成方法的学习收敛的速度会更快。即当样本容量增加的时候,学习到的数据可以更快的收敛于真实的模型
- 当存在隐变量时,仍然可以用生成方法,这个时候判别方法实际上是不能用的。
- 判别模型的缺点:如果数据分布符合生成模型假设的情况下,判别模型效果并没有生成模型好。 存在隐变量时不能用。
- 生成模型的缺点:生成模型会对于数据的分布的假设的要求会更高,如果数据的分布不符合假设,那么就会导致效果比较差【鲁棒性差】
#参考文献
- 《统计学习方法》李航
- 机器学习“判定模型”和“生成模型‘有什么区别?最高票那个答案推理的还是蛮好的