郭震 AI公众号:郭震AI

15 贝叶斯回归之预测与不确定性量化

发布日期:

最近更新:

分类: 贝叶斯学习

预计阅读: 4 分钟

阅读次数: 0

预计阅读4 分钟
结构重点8 个
图文要点6 张
正文规模1.6k 字

整理说明

这篇内容怎么整理

郭震 · 2026-06-04

独立整理围绕 8 个结构重点拆成环境、步骤、验证点和常见误区,尽量让读者能照着复现。
图文对照保留 6 张和配置、流程、判断结果有关的图片,方便快速定位正文重点。
持续校对工具、模型和命令变化较快,后续优先修正入口、参数和风险提醒。

阅读路线

先按这条路线读

先抓住主线,再回到代码、配置和图文细节,读起来会更稳。

图文要点

先看本文图文节点

按图先建立主线,再跳回正文核对步骤、配置和判断标准。

贝叶斯回归之预测与不确定性量化结构图查看大图
贝叶斯回归之预测与不确定性量化结构图

贝叶斯学习的重点是把已有判断和新证据合在一起,并明确表达不确定性。阅读时可以按「贝叶斯回归的预测 -> 预测分布 -> 计算预测分布 -> 结果分析」建立结构,再回到正文里的代码、案例或指标做验证。

贝叶斯回归之预测与不确定性量化核对图查看大图
贝叶斯回归之预测与不确定性量化核对图

读完后,用一个真实小任务复查:输入是什么,处理环节在哪里,输出是否可验收;失败时先查「贝叶斯回归的预测」,再查「预测分布」。

在上一篇中,我们已探讨了《贝叶斯回归之先验选择与后验分析》,重点讨论了如何选择适当的先验分布以及从数据中获得后验分布。在本篇教程中,我们将深入研究如何利用贝叶斯回归模型进行预测,并量化预测的不确定性。

1. 贝叶斯回归的预测

在贝叶斯回归中,预测不仅仅是通过模型来获取一个点估计,更重要的是我们能够量化这个估计的不确定性。贝叶斯框架允许我们整合先验知识和观测数据,从而对未知参数进行不确定性建模。

预测与不确定性判断卡查看大图
预测与不确定性判断卡

做贝叶斯回归预测时,先看后验参数、预测均值、可信区间、观测噪声和样本外风险。

1.1 预测分布

给定一个新的输入数据点 xx^*,我们希望预测对应的输出 yy^*。在贝叶斯回归中,我们不能仅仅计算回归函数的预测值,而是要计算 yy^* 的条件分布,即 p(yx,D)p(y^* | x^*, D),其中 DD 是我们的训练数据。

根据贝叶斯定理,我们可以得到:

p(yx,D)=p(yx,θ)p(θD)dθp(y^* | x^*, D) = \int p(y^* | x^*, \theta) p(\theta | D) d\theta

这里,p(yx,θ)p(y^* | x^*, \theta) 是给定参数 θ\theta 时,yy^* 的预测分布,而 p(θD)p(\theta | D) 是参数的后验分布。

1.2 计算预测分布

在实际操作中,由于 p(θD)p(\theta | D) 可能很复杂,我们通常会使用蒙特卡洛方法来近似计算。以下是一个简单的案例,演示如何使用Python进行贝叶斯回归预测。

案例:预测房价

假设我们有一组数据,包含房子的面积(平方英尺)和相应的房价。我们可以使用贝叶斯线性回归来进行预测,并量化预测的不确定性。

import numpy as np
import matplotlib.pyplot as plt
import pymc3 as pm

# 生成模拟数据
np.random.seed(42)
X = np.random.normal(1000, 200, 100)
true_slope = 200
true_intercept = 10000
y = true_intercept + true_slope * X + np.random.normal(0, 5000, 100)

# 数据的可视化
plt.scatter(X, y, c='black', label='Data')
plt.xlabel('Size (sqft)')
plt.ylabel('Price ($)')
plt.title('House Prices')
plt.legend()
plt.show()

# 贝叶斯回归模型
with pm.Model() as model:
    # 先验分布
    alpha = pm.Normal('alpha', mu=0, sigma=10000)
    beta = pm.Normal('beta', mu=0, sigma=500)
    sigma = pm.HalfNormal('sigma', sigma=1000)

    # 线性回归方程
    mu = alpha + beta * X
    
    # 似然函数
    Y_obs = pm.Normal('Y_obs', mu=mu, sigma=sigma, observed=y)

    # 采样
    trace = pm.sample(2000, tune=1000, return_inferencedata=False)

# 预测
X_new = np.linspace(min(X), max(X), 100)
with model:
    pm.set_data({'X_new': X_new})
    mu_new = pm.sample_posterior_predictive(trace)
    
# 计算均值和不确定性
y_pred = mu_new['Y_obs'].mean(axis=0)
y_pred_std = mu_new['Y_obs'].std(axis=0)

# 可视化预测结果
plt.figure(figsize=(10, 5))
plt.scatter(X, y, c='black', label='Data')
plt.plot(X_new, y_pred, color='blue', label='Predicted Mean')
plt.fill_between(X_new, y_pred - 1.96 * y_pred_std, y_pred + 1.96 * y_pred_std, color='blue', alpha=0.3, label='95% Prediction Interval')
plt.xlabel('Size (sqft)')
plt.ylabel('Price ($)')
plt.title('Bayesian Linear Regression Prediction')
plt.legend()
plt.show()

1.3 结果分析

在上述案例中,我们使用贝叶斯回归对房价进行了预测。在预测的图中,蓝色线是预测的均值,而阴影区域表示预测的不确定性区间(95%的置信区间)。这种可视化不仅提供了对房价的点估计,还量化了预测的`不确定性`。

2. 处理不确定性的方式

贝叶斯回归的一个重要优点是它能够自然地处理不确定性。我们可以通过后验分布直接获取参数的不确定性,并通过预测分布来量化预测的不确定性。这使得我们能够做出更为稳健的决策。

贝叶斯学习阅读地图卡查看大图
贝叶斯学习阅读地图卡

《贝叶斯回归之预测与不确定性量化》可以按“场景、概念、动作、结果”来读。先把这四件事对齐,再回到正文里的参数、代码或流程。

2.1 不同先验对不确定性的影响

通过选择不同的先验分布,我们可以观察到预测的不确定性是如何变化的。例如,如果我们选择一个较为强烈的先验,可能会收缩预测的置信区间,而较为宽松的先验则可能导致更大的不确定性。

2.2 蒙特卡洛方法的重要性

如前所述,由于后验分布往往无法解析,使用蒙特卡洛方法抽样是贝叶斯预测的一种常见做法。这种方法允许我们从后验中生成样本,从而提供更丰富的预测信息。

贝叶斯回归之预测与不确定性量化应用复盘卡查看大图
贝叶斯回归之预测与不确定性量化应用复盘卡

如果《贝叶斯回归之预测与不确定性量化》还没完全消化,可以从这张卡片的四个动作重新走一遍。

贝叶斯回归之预测与不确定性量化应用检查卡查看大图
贝叶斯回归之预测与不确定性量化应用检查卡

回看《贝叶斯回归之预测与不确定性量化》时,不必一次做大项目,先用一条简单样例确认主线是否清楚。

3. 总结

在本篇中,我们探讨了贝叶斯回归的预测特点以及如何量化不确定性。通过实际案例,我们展示了如何使用Python的pymc3库进行贝叶斯回归的预测,并通过可视化的方式呈现预测结果及其不确定性。这种方法提供了比传统线性回归更为深入的洞察,尤其在处理复杂的数据时。

接下来的篇章,我们将关注《贝叶斯分类之贝叶斯分类的基本理论》,进一步扩展我们的贝叶斯学习之旅。

继续阅读

从这篇继续找到相关教程

AI 教程总索引

常见问题

读前先确认这三点

贝叶斯回归之预测与不确定性量化适合谁读?

这是 贝叶斯学习入门 系列第 15 / 24 篇,适合正在学习贝叶斯学习入门,并且需要把概念落到操作步骤或判断标准里的读者。

读这篇贝叶斯学习入门教程要多久?

按中文技术文章阅读速度估算,通读大约 4 分钟;如果要跟着复现,建议把命令、配置和结果检查分开做。

这篇文章里的图文节点怎么用?

正文里有 6 个图文节点,可以先用它们抓住流程、配置和判断点,再回到对应段落细读。

分享文章

转发到常用平台

微信/朋友圈可先复制链接

相关教程

AI 教程总索引

继续阅读

继续找到相关 AI 教程

返回栏目

Reader Messages

读者留言

有问题、补充资料或实测结果,可以直接留下。这里不需要登录。

最多 800 字

为了防刷,每条留言会做长度、链接数量和提交频率限制。

0/800

留言列表

0
正在加载留言...