1.2贝叶斯线性回归模型

目录

1.2为什么用贝叶斯线性回归

1.2.1最大似然估计(MLE)

目标函数

argmaxθp(D|θ) arg ⁡ max θ ⁡ p ( D | θ )

这里 θ θ 是模型里面的参数, D D 是观测值
优点:计算简单
缺点:容易过度拟合
预测结果是一个固定的值,无法对不确定性建模

1.2.2最大后验(MAP)

目标函数

argmaxθp(θ|D)

优点:解决了过度拟合的问题;
缺点:任然没有办法对不确定性建模;

1.2.3 贝叶斯方法

贝叶斯对预测分布建模,

p(y|t,D) p ( y | t , D )

1.2.4 贝叶斯线性模型定义

一组观测数据 D=(x1,y1,(x2,y2),...(xn,yn)),xiRd,yiR D = ( ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . ( x n , y n ) ) , x i ∈ R d , y i ∈ R
Y1,Y2,..Yn Y 1 , Y 2 , . . Y n 对 w独立
YiN(wTxi,a1) Y i ∼ N ( w T x i , a − 1 ) 这里 a=1σ2,a>0 a = 1 σ 2 , a > 0 又被称为精度
wN(0,b1I) w ∼ N ( 0 , b − 1 I ) ,b>0;
这里假设 a,b a , b 是已知的。

1.2.4贝叶斯线性回归的后验分布

为了计算后验分布,我们首先需要似然函数,写为:

p(D|w)exp(a2(yAw)T(yAw)) p ( D | w ) ∝ e x p ( − a 2 ( y − A w ) T ( y − A w ) )

这边 A A 是design matrix。
后验分布
p(w|D)p(D|w)p(w)exp(a2(yAw)T(yAw)b2wTw)

p(w|D)=N(w|μ,Λ1) p ( w | D ) = N ( w | μ , Λ − 1 )

Λ=aATA+bIu=aΛ1ATy Λ = a A T A + b I u = a Λ − 1 A T y

1.2.5贝叶斯线性回归的预测分布

预测分布

p(y|x,D)=p(y|x,D,w)p(w|x,D)dwp(y|x,w)p(w|D)dwN(y|wTx,a1N(w|μ,Λ1)) p ( y | x , D ) = ∫ p ( y | x , D , w ) p ( w | x , D ) d w ∫ p ( y | x , w ) p ( w | D ) d w ∫ N ( y | w T x , a − 1 N ( w | μ , Λ − 1 ) )

p(y|x,D)=N(u,1λ) p ( y | x , D ) = N ( u , 1 λ )

u=μTx1λ=1a+xTΛ1x u = μ T x 1 λ = 1 a + x T Λ − 1 x

### 贝叶斯线性回归模型概述 贝叶斯线性回归是一种结合了贝叶斯统计和传统线性回归的方法,用于解决回归问题并提供参数不确定性的量化估计。该方法的核心思想是将模型中的参数视为随机变量,并通过先验分布与观测数据相结合的方式推导出后验分布[^2]。 #### 概念详解 贝叶斯线性回归的主要特点是引入了概率论框架下的推理过程。具体而言,在给定训练数据的情况下,模型的目标是从先验分布出发,更新得到关于权重向量 \( \boldsymbol{w} \) 的后验分布。这一过程遵循贝叶斯法则: \[ p(\boldsymbol{w}|D) = \frac{p(D|\boldsymbol{w}) p(\boldsymbol{w})}{p(D)} \] 其中: - \( D \) 表示训练数据; - \( p(\boldsymbol{w}) \) 是权重的先验分布; - \( p(D|\boldsymbol{w}) \) 是似然函数; - \( p(\boldsymbol{w}|D) \) 是后验分布[^2]。 这种建模方式使得我们可以获得更丰富的信息,而不仅仅是单一的最佳拟合直线。通过对后验分布进行采样或解析计算,可以获得参数及其置信区间的估计值。 --- ### 实现方法 以下是基于 MATLAB 和 Python 的两种实现方案: #### 方法一:MATLAB 实现 参考 优快云 提供的一个完整案例[^1],可以通过以下步骤完成贝叶斯线性回归的实现: 1. **定义先验分布**:通常选择高斯分布作为权重的先验。 2. **构建似然函数**:假设目标变量服从正态分布 \( y_i|x_i, w \sim N(w^T x_i, \sigma^2) \),即噪声项为独立同分布 (i.i.d.) 正态分布。 3. **计算后验分布**:根据贝叶斯公式得出后验分布的形式。 4. **预测新样本**:对于测试集中的每一个输入特征向量 \( x_{test} \),利用后验均值和协方差矩阵生成预测结果及对应的不确定性范围。 实际代码片段如下所示: ```matlab % 加载数据 load('data.mat'); % 假设 data.mat 中包含 X_train, Y_train 等字段 % 设置超参数 alpha = 0.5; beta = 1; % 初始化 S_N^{-1} S_inv = alpha * eye(size(X_train, 2)) + beta * (X_train' * X_train); % 更新 m_N m_N = beta * inv(S_inv) * (X_train' * Y_train); disp(['Training R-squared:', num2str(1)]); disp(['Test MAE:', num2str(test_mae)]); ``` #### 方法二:Python 实现 借助 PyMC3 或 TensorFlow Probability 这样的工具包可以简化开发流程。下面是一个简单的例子展示如何用 PyMC3 构造贝叶斯线性回归模型: ```python import pymc3 as pm import numpy as np # 数据准备 np.random.seed(1) size = 100 true_intercept = 1 true_slope = 2 x = np.linspace(0, 1, size) y = true_intercept + x*true_slope + np.random.normal(scale=0.5, size=size) with pm.Model() as model: # 定义先验 intercept = pm.Normal("Intercept", mu=0, sigma=10) slope = pm.Normal("Slope", mu=0, sigma=10) # 方差的倒数(精度) precision = pm.Gamma("Precision", alpha=0.001, beta=0.001) # 预测值 mean = intercept + slope*x # 似然函数 likelihood = pm.Normal("Y_obs", mu=mean, tau=precision, observed=y) # 推断 trace = pm.sample(2000, tune=1000) pm.summary(trace).round(2) ``` 此脚本会返回各参数的后验统计数据表,便于进一步分析。 --- ### 应用场景 由于其强大的理论基础和灵活性,贝叶斯线性回归被广泛应用于多个领域: 1. **工程造价预测** - 利用历史项目的成本记录和其他影响因子,建立高速公路或其他基础设施建设的成本估算模型。相比传统的 BP 神经网络,这种方法表现出更低的平均绝对百分比误差(MAPE)[^2]。 2. **经济研究** - 劳动经济学中常用来探讨薪资水平的变化规律,揭示不同群体间可能存在的薪酬差异现象。例如性别差距或者教育回报率等问题的研究都离不开此类技术的支持。 3. **医学诊断辅助系统** - 当面对稀少但重要的临床试验资料时,采用贝叶斯方法可以帮助医生做出更加可靠的判断依据。比如癌症早期筛查过程中风险评分系统的优化设计等任务均可受益于此法[^3]。 4. **金融投资组合管理** - 投资者可以根据资产收益率的历史表现以及宏观经济环境变化情况,运用贝叶斯策略调整未来收益预期,从而制定更为稳健的投资计划[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值