【机器学习】生成模型和判别模型

上篇文章提到了Linear SVM 和 LR 的联系和区别,提到了它们都是判别模型。但是什么是判别模型呢,与其相对应的生成模型又有哪些呢。本文来总结一下。以下部分主要参考了李航那本《统计学习方法》

判别模型和生成模型都是指监督学习下的模型,监督学习模型本质上就是求决策函数:
Y = F ( X ) Y=F(X) Y=F(X)
或者条件概率分布:
P ( Y ∣ X ) P(Y|X) P(YX)
而求解过程又可以分为判别方法和生成方法

#生成模型 (generative)
生成方法必须要学得其联合概率分布 P ( X , Y ) P(X,Y) P(X,Y),然后根据联合概率分布和贝叶斯公式去求得 P ( Y ∣ X ) P(Y|X) P(YX)

P ( Y ∣ X ) = P ( X , Y ) P ( X ) P(Y|X) = \frac{P(X,Y)}{P(X)} P(YX)=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(XY)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(XY)=P(X1Y)×P(X2Y)××P(XnY)
又因为分母P(X)大家都一样,所以只用比较分子就好
#判别模型(discriminative)
判别模型是由数据直接学习决策函数 F ( x ) F(x) F(x)或者条件概率分布 P ( Y ∣ X ) P(Y|X) P(YX)作为预测的模型。判别方法关心的是对于给定的输入 X X X,应该预测什么样的 Y Y Y
常见的生成模型包括K近邻法,感知机,决策树,LR,SVM等等

#生成模型和判别模型的区别和联系

  1. 由生成模型可以得到判别模型,但是由判别模型得不到生成模型
  2. 生成模型可以产生数据,判别模型只能根据数据做判断。生成模型为了得到数据的整体分布。判别模型为了用「线」把数据划开
  3. 判别模型优点:
    1. 判别模型对数据的分布的假设要求不高,鲁棒性较好,即便是在模型不符合数据假设的情况下,效果通常也会比较好
    2. 直接面对预测,往往在学习的准确率上会更高
    3. 由于直接学习 P ( Y ∣ X ) P(Y|X) P(YX)或者 F ( x ) F(x) F(x),可以对数据进行各种程度上的抽象,定义特征并且使用特征,因此可以简化学习的问题。
  4. 生成模型的优点:
    1. 生成方法的学习收敛的速度会更快。即当样本容量增加的时候,学习到的数据可以更快的收敛于真实的模型
    2. 当存在隐变量时,仍然可以用生成方法,这个时候判别方法实际上是不能用的。
  5. 判别模型的缺点:如果数据分布符合生成模型假设的情况下,判别模型效果并没有生成模型好。 存在隐变量时不能用。
  6. 生成模型的缺点:生成模型会对于数据的分布的假设的要求会更高,如果数据的分布不符合假设,那么就会导致效果比较差【鲁棒性差】

#参考文献

  1. 《统计学习方法》李航
  2. 机器学习“判定模型”和“生成模型‘有什么区别?最高票那个答案推理的还是蛮好的

你可能感兴趣的:(机器学习)