生成式模型 vs 判别式模型

生成式模型利用数据分布提供更丰富的信息,适用于单类问题且能进行增量学习,但计算复杂且准确率较低。判别式模型则关注数据边界,准确率高、计算量小,但无法反映数据特性,收敛速度慢。

点击上方“Datawhale”,选择“星标”公众号

第一时间获取价值内容

生成式模型和判别式模型的概念是机器学习领域非常重要的基础知识,但能准确区分开二者并不是一件非常容易的事情,笔者经常是看一遍忘一遍,为了巩固下知识点,我将从以下几个方面对两种模型进行介绍和对比。

概念

首先我们需要明确,两种不同的模型都用于监督学习任务中。监督学习的任务就是从数据中学习一个模型,并用基于这个模型对给定的输入预测相应的输出。这种模型的一般形式为决策函数   或者条件概率分布 
我们先用一张图来初步感受一下,等看完文章后再回来看一遍会更直观:
定义
生成式模型先对数据的联合分布   进行建模,然后再通过贝叶斯公式计算样本属于各类别的后验概率 
### 李宏毅讲解生成式模型判别式模型 #### 生成式模型的特点 生成式模型旨在捕捉数据的真实分布,通过学习联合概率分布 \( p(x, y) \),其中 \( x \) 是输入特征而 \( y \) 是类别标签。这类模型能够模拟新样本的创建过程,适用于多种任务如图像合成、语音生成等[^3]。 对于分类问题而言,在应用贝叶斯定理时,可以通过寻找一组合适的高斯函数来构建模型集合,并利用最大似然估计方法评估各个候选模型的质量从而挑选最优者[^2]。 #### 判别式模型的工作原理 相比之下,判别式模型专注于建立条件概率分布 \( p(y|x) \),即给定特定输入下预测输出的概率。典型代表有支持向量机和支持向量网络等算法。这些技术并不试图理解整个系统的运作机制而是直接针对决策边界进行优化以实现高效准确地分类目的[^4]。 #### Flow作为一种特殊的生成式模型 值得注意的是Flow也属于生成式模型的一种形式,它与其他同类框架(例如GANs和VAEs)共享相似属性——都是为了创造逼真的假象实例而设计出来的工具[^1]。 ```python import numpy as np from sklearn.datasets import make_classification from sklearn.model_selection import train_test_split from sklearn.naive_bayes import GaussianNB # 创建虚拟二元分类数据集 X, y = make_classification(n_samples=1000, n_features=20, random_state=42) # 将数据分为训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42) # 使用朴素贝叶斯作为简单的生成式模型示例 gnb = GaussianNB() gnb.fit(X_train, y_train) print(f"Test set accuracy: {gnb.score(X_test, y_test):.2f}") ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值