当前位置: 首页 > news >正文

生成模型与判别模型

通过训练集得到的模型有两种形式:生成模型和判别模型。

生成模型(Generative Models)和判别模型(Discriminative Models)是机器学习中两种核心建模方法,它们在目标、建模对象、应用场景和优缺点上存在显著差异。理解它们的区别对选择合适的算法至关重要。

一、生成模型

典型的生成模型包括:朴素贝叶斯法、隐马尔可夫模型(时间序列的概率模型)。

注:输入和输出变量要求为随机变量

二、判别模型

典型的判别模型包括:k近邻法、感知机、决策树。

注:不需要输入和输出变量均为随机变量

对于判别模型可以根据二者的鼻子的长度来判定类别,而生成方法需要分别对二者建立特征模型,就不只包括鼻子,还有嘴巴等等特征。

三、两者的详细对比:

特性生成模型 (Generative Models)判别模型 (Discriminative Models)
核心目标学习数据本身的联合概率分布 P(X, Y)直接学习决策边界条件概率 P(Y|X)
建模对象输入特征 X 和输出标签 Y 的联合分布给定输入特征 X 时,输出标签 Y 的条件分布
“思考”方式“数据是如何生成出来的?”
(模拟数据生成过程)
“如何根据特征区分不同类别?”
(关注类别边界)
数学本质估计 P(X, Y) = P(X|Y) * P(Y)直接估计 P(Y|X)
典型算法• 朴素贝叶斯 (Naive Bayes)
• 隐马尔可夫模型 (HMM)
• 高斯混合模型 (GMM)
• 生成对抗网络 (GAN)
• 变分自编码器 (VAE)
• 贝叶斯网络
• 逻辑回归 (Logistic Regression)
• 支持向量机 (SVM)
• 决策树/随机森林
• 传统神经网络
• 条件随机场 (CRF)
• k近邻 (k-NN)
训练过程学习每个类别下特征 X 的分布 P(X|Y) 和先验概率 P(Y)直接学习从 X 映射到 Y 的函数或条件概率 P(Y|X)
预测方式利用贝叶斯定理计算后验概率:
P(Y|X) = [P(X|Y) * P(Y)] / P(X),取最大 P(Y|X) 对应的 Y
直接输出使 P(Y|X) 最大的 Y,或学习决策函数 Y = f(X)
优点• 能生成新的数据样本
• 可处理缺失数据
• 易于融入先验知识
• 适合无监督/半监督学习(学习数据分布)
• 提供完整的概率框架
• 分类准确率通常更高(尤其在大样本下)
• 训练和预测效率更高
• 模型更简单直接,避免不必要的分布假设
• 对特征工程依赖相对较小
缺点• 需要估计更多参数(联合分布),计算更复杂
• 对模型假设敏感(如朴素贝叶斯的条件独立性假设)
• 如果分布假设错误,性能可能较差
• 分类任务上可能不如判别模型精确
• 无法生成新样本
• 难以处理缺失数据
• 难以利用无标签数据
• 对输入数据的分布提供较少理解
主要应用场景• 数据生成(图像、文本、语音合成)
• 异常检测(低概率样本)
• 带缺失数据的分类
• 自然语言处理(语言建模)
• 推荐系统(生成用户-物品交互)
• 绝大多数分类任务(图像分类、文本分类、垃圾邮件检测)
• 回归任务
• 序列标注(词性标注、命名实体识别)
• 需要高判别精度的场景
类比画家:学习整个物体的结构和纹理,然后可以自己画出来(生成)或判断类别。裁判:专注于观察关键特征(如条纹、尾巴)来快速区分老虎和豹子,但不关心如何“画”出它们。
http://www.dtcms.com/a/289592.html

相关文章:

  • 虚拟机VMware安装国产桌面系统统信UOS
  • Nginx服务器基本搭建
  • 【性能测试】性能压测3个阶段+高频面试题回答(详细)
  • 大语言模型:人像摄影的“达芬奇转世”?——从算法解析到光影重塑的智能摄影革命
  • 机器学习基础:从数据到智能的入门指南
  • 【数据集】NOAA 全球监测实验室(GML)海洋边界层(MBL)参考简介
  • 渗透笔记(XSS跨站脚本攻击)
  • 【算法300】:栈02
  • Day25| 491.递增子序列、46.全排列、47.全排列 II、回溯总结
  • JAVA面试宝典 -《API设计:RESTful 与 GraphQL 对比实践》
  • Error: You don‘t have permission to access that port.当端口被莫名占用时,kill它!
  • G1回收器垃圾回收过程
  • 30天打牢数模基础-卷积神经网络讲解
  • 将来职业从事股票市场投资工作,应该做什么?
  • Python趣味算法:借书方案知多少 | 排列组合穷举法详解
  • DeepSeek+LoRA微调大模型实战
  • 【机器学习深度学习】魔塔社区模型后缀全解析:Base、Chat、Instruct、Bit、Distill背后的技术密码
  • 【Java多线程-----复习】
  • InfluxDB 核心概念与发展历程全景解读(二)
  • AtCoder Beginner Contest 415
  • 数控调压BUCK电路 —— 基于TPS56637(TI)
  • 乐观锁实现原理笔记
  • Android activity与service通信的三种方法
  • 30天打牢数模基础-K均值聚类
  • (DINO)Emerging Properties in Self-Supervised Vision Transformers论文精读(逐段解析)
  • (苍穹外卖)暑假学习理解P2
  • 从零搭建智能搜索代理:LangGraph + 实时搜索 + PDF导出完整项目实战
  • [C/C++安全编程]_[中级]_[如何安全使用循环语句]
  • k8s:离线部署存在的相关问题
  • 近期工作感想:职业规划篇