我是靠谱客的博主 安静马里奥,最近开发中收集的这篇文章主要介绍生成模型(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(XY),然后求出条件概率分布 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)
判别方法:由数据直接学习决策函数 f ( X ) f(X) f(X)或者条件概率分布 P ( Y ∣ X ) P(Y|X) P(YX)作为预测的模型,即判别模型

生成模型和判别模型的特点

生成模型:

  1. 生成方法可以还原出联合概率分布 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=1kP(x~y~i)P(y~i)
  2. 生成模型的收敛效果更快,即当样本容量增加是,生成模型可以更快的收敛于真实模型
  3. 生成模型可以应付存在隐变量的情况

判别模型:

  1. 直接面对预测,往往学习的准确度更好
  2. 由于直接学习 P ( y ~ ∣ x ~ ) P(tilde y|tilde x) P(y~x~),可以对数据进行各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题。

关于这一点,个人认为可以先记住哪些算法属于哪一类模型,然后结合模型特点和具体算法的特点来记,如:决策树属于判别模型,他也可以用来抽象特征(信息熵、信息熵增益),知道了哪些特征更重要,简化了分类难度。

举例说明生成模型和判别模型

生成模型:

以朴素贝叶斯为例:

  1. 设特征 x = { x 1 , x 2 , … , x m } x = { x_1,x_2,…,x_m} x={x1,x2,,xm},每一个分量表示为特征的一个属性维度
  2. 设类别集合 C = y 1 , y 2 , … , y n C = y_1,y_2,…,y_n C=y1,y2,,yn
  3. 分别计算特征 x x x属于每一个类别的概率大小: P ( y 1 ∣ x ) P(y_1|x) P(y1x), P ( y 2 ∣ x ) P(y_2|x) P(y2x).…, P ( y n ∣ x ) P(y_n|x) P(ynx)
    概率大小通过贝叶斯公式可得: 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(yix)=P(x)P(xyi)P(yi)=P(x)j=1mP(xjyi)P(yi)
  4. 特征 x x x类别为最大的概率对应的类别, a r g m a x y i P ( y i ∣ x ) argmax_{y_i}P(y_i|x) argmaxyiP(yix)

判别模型:

以LR为例:
特征进行输入后,并不会去计算一个 P ( y i ∣ x ) P(y_i|x) P(yix)的概率,而是直接由决策函数 f ( x ) f(x) f(x)给出了概率。

参考: 李航 《统计学习方法》

最后

以上就是安静马里奥为你收集整理的生成模型(Generative model)和判别模型(Discriminative model)生成模型(Generative model)和判别模型(Discriminative model)的全部内容,希望文章能够帮你解决生成模型(Generative model)和判别模型(Discriminative model)生成模型(Generative model)和判别模型(Discriminative model)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部