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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haolexiao/article/details/70217607

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

判别模型和生成模型都是指监督学习下的模型,监督学习模型本质上就是求决策函数:

Y=F(X)

或者条件概率分布:
P(Y|X)

而求解过程又可以分为判别方法和生成方法

生成模型 (discriminative)

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

P(Y|X)=P(X,Y)P(X)

生成模型以概率的方式描述了数据的产生方式,通过对模型采样就可以产生数据。
常见的生成模型有 朴素贝叶斯法隐马尔科夫模型还有EM
比如朴素贝叶斯就是根据
P(X,Y)=P(X|Y)P(Y)
来求得 P(X,Y)
因为朴素贝叶斯的条件独立假设,则
P(X|Y)=P(X1|Y)×P(X2|Y)××P(Xn|Y)

又因为分母P(X)大家都一样,所以只用比较分子就好

判别模型(generative)

判别模型是由数据直接学习决策函数 F(x) 或者条件概率分布 P(Y|X) 作为预测的模型。判别方法关心的是对于给定的输入 X ,应该预测什么样的 Y
常见的生成模型包括K近邻法,感知机,决策树,LR,SVM等等

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

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

参考文献

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

猜你喜欢

转载自blog.csdn.net/haolexiao/article/details/70217607