贝叶斯线性回归

关于deep Learningbook第五章120页5.71和5.72的有关解释:
这个问题的研究思路是我们拿到一组数据后数据本身中包含着概率密度函数,但是这个函数的形式我们是不清楚的,所以要使用概率密度分布的方法从数据中估算出来,在这个过程需要求得的两个是:概率密度函数的形式(高斯分布、瑞利分布)和概率密度函数的参数(均值、方差)。
求解首先要知道数据本身是连续还是离散的,也就是要把数据是否是结构化数据可视化分析得到结果。
一般情况下的概率密度函数和形式和参数的求解是假设为高斯或者混合高斯分布及通过指数对数的手段化为高斯分布。
参数估计的方法是:极大似然估计、最大后验估计、贝叶斯估计、最大熵估计、混合型估计
其实这个线性回归就是求解残差平方和问题,在多元线性回归中可以分析得到残差(误差)平方损失(平方误差维损失函数和最小二乘法和极大似然作用一样都是对参数估计)将极大似然估计应用到线性回归模型中,模型的复杂度会被两个因素所控制:基函数的数目和样本的数目。尽管为对数极大似然估计加上一个正则项(或者是参数的先验分布),在一定程度上可以限制模型的复杂度,防止过拟合,但基函数的选择对模型的性能仍然起着决定性的作用,由于极大似然估计总是会使得模型过于的复杂以至于产生过拟合的现象,所以单纯的适用极大似然估计并不是特别的有效,贝叶斯线性回归不仅可以解决极大似然估计中存在的过拟合的问题,而且,它对数据样本的利用率是100%,仅仅使用训练样本就可以有效而准确的确定模型的复杂度。优点:
1. 贝叶斯回归对数据有自适应能力,可以重复的利用实验数据,并防止过拟合
2. 贝叶斯回归可以在估计过程中引入正则项
缺点:
1. 贝叶斯回归的学习过程系统开销太大
https://en.wikipedia.org/wiki/Normal-inverse-gamma_distribution#Generating_normal-inverse-gamma_random_variates
https://en.wikipedia.org/wiki/Wrapped_distribution
http://nbviewer.jupyter.org/github/lijin-THU/notes-machine-learning/blob/master/ReadMe.ipynb
https://en.wikipedia.org/wiki/Wrapped_distribution
https://en.wikipedia.org/wiki/Normal-inverse-gamma_distribution#Generating_normal-inverse-gamma_random_variates
http://nbviewer.jupyter.org/github/lijin-THU/notes-machine-learning/blob/master/Pattern-Recognition-and-Machine-Learning/Chap-01-Introduction/01-02-Probability-Theory.ipynb#1.2.1-概率密度函数
http://ufldl.stanford.edu/wiki/index.php/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C#.E6.A6.82.E8.BF.B0
https://en.wikipedia.org/wiki/Normal-inverse-gamma_distribution
http://www.cs.ubc.ca/~murphyk/Papers/bayesGauss.pdf

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
贝叶斯线性回归模型是一种基于贝叶斯统计理论的回归模型,它可以用于建模和预测变量之间的线性关系。与传统的线性回归模型相比,贝叶斯线性回归模型引入了先验分布来描述参数的不确定性,并通过贝叶斯推断来更新参数的后验分布。 在Python中,可以使用多个库来实现贝叶斯线性回归模型,其中最常用的是PyMC3和Stan。这两个库都提供了灵活的建模语言和强大的推断算法,可以方便地构建和训练贝叶斯线性回归模型。 下面是一个使用PyMC3库实现贝叶斯线性回归模型的简单示例: ```python import pymc3 as pm import numpy as np # 生成一些随机数据 np.random.seed(0) X = np.random.randn(100, 2) true_beta = np.array([1, 2]) y = np.dot(X, true_beta) + np.random.randn(100) # 构建模型 with pm.Model() as model: # 定义先验分布 beta = pm.Normal('beta', mu=0, sd=10, shape=2) sigma = pm.HalfNormal('sigma', sd=1) # 定义线性关系 mu = pm.math.dot(X, beta) # 定义似然函数 likelihood = pm.Normal('y', mu=mu, sd=sigma, observed=y) # 进行推断 trace = pm.sample(1000, tune=1000) ``` 在这个示例中,我们首先生成了一些随机数据,然后使用PyMC3库构建了一个贝叶斯线性回归模型。模型的参数包括斜率(beta)和误差项的标准差(sigma),它们都被定义为先验分布。然后,我们定义了线性关系和似然函数,并使用MCMC算法进行推断。 以上是一个简单的贝叶斯线性回归模型的Python实现示例。你可以根据具体的需求和数据进行相应的调整和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值