机器学习之生成式模型与判别式模型的区别

根本区别在于是否计算了联合分布 P ( X , Y ) P(X,Y) P(X,Y)和是否比较了模型输出的概率大小.

生成式模型的特点

  • 对联合分布进行建模,然后通过朴素贝叶斯来求条件概率,选择使得条件概率最大的 Y Y Y
  • 可以还原出联合概率分布 P ( X , Y ) P(X,Y) P(X,Y)
  • 学习收敛速度快,当样本容量增加时,学到的模型可以更快地收敛于真实模型
  • 应对存在隐变量(不可观测的变量)的场景
  • 相比于判别式模型,往往模型效果差一些
  • 学习到的数据本身信息更多,能反应数据本身特性
  • 学习成本较高,需要更多的计算资源
  • 需要的样本数更多,样本较少时学习效果较差

判别式模型的特点

  • 不能还原出联合概率分布 P ( X , Y ) P(X,Y) P(X,Y)
  • 不能处理存在隐变量的场景
  • 由于直接学习的是条件概率 P ( X ∣ Y ) P(X|Y) P(X∣Y)或者决策函数 f ( X ) f(X) f(X),往往学习的准确率更高
  • 由于直接学习的是 P ( X ∣ Y ) P(X|Y) P(X∣Y)或者 f ( X ) f(X) f(X),可以对数据进行各种程序熵的抽象、定义特征并使用特征,可以简化学习问题
  • 对条件概率建模,学习不同类别之间的最优边界
  • 捕捉不同类别特征的差异信息,不学习本身分布信息,无法反映数据本身特性
  • 学习成本较低,需要的计算资源较少
  • 需要的样本数可以较少,少样本也能很好学习

典型的模型

  • 常见的判别式模型有:线性回归、限行判别分析、SVM、神经网络、K近邻、决策树、最大熵模型、boosting、条件随机场
  • 常见的生成式模型: HMM、朴素贝叶斯、GMM、LDA等
相关推荐
richard_yuu4 小时前
数据结构|二叉树高阶进阶-经典算法
数据结构·c++·算法
不知名的忻4 小时前
Dijkstra算法(朴素版&堆优化版)
java·数据结构·算法··dijkstra算法
星星码️5 小时前
LeetCode刷题简单篇之反转字母
c++·算法·leetcode
naturerun5 小时前
螺旋形遍历奇数阶矩阵
c++·算法·矩阵
wuweijianlove5 小时前
算法复杂度的实验估算与误差分布建模的技术7
算法
qq_283720056 小时前
RecursiveCharacterTextSplitter 核心参数深度指南:chunk_size 与 chunk_overlap 原理、实战、调优全解
人工智能·机器学习
佳xuan6 小时前
简而言之c++
c++·算法
变量未定义~6 小时前
星际争霸、宝石塔的亮度差异、寻找食物储量
算法
YL200404266 小时前
027合并两个有序链表
java·数据结构·算法·链表
MATLAB代码顾问7 小时前
【智能优化】无穷优化算法(INFO)原理与Python实现
开发语言·python·算法