概率编程库Pymc3案例之鲁棒线性回归
参考:https://twiecki.io/blog/2013/08/27/bayesian-glms-2/
https://twiecki.io/blog/2014/03/17/bayesian-glms-3/
https://twiecki.github.com/blog/2013/08/12/bayesian-glms-1/
针对线性回归中异常点,利用t分布来替换正态分布构建贝叶斯模型。
%matplotlib inline
import pymc3 as pm
import matplotlib.pyplot as plt
import numpy as np
import theano
size = 100
true_intercept = 1
true_slope = 2x = np.linspace(0, 1, size)
# y = a + b*x
true_regression_line = true_intercept + true_slope * x
# add noise
y = true_regression_line + np.random.normal(scale=.5, size=size)
# Add outliers
x_out = np.append(x, [.1, .15, .2])
y_out = np.append(y, [8, 6, 9])
data = dict(x=x_out, y=y_out)
fig = plt.figure(figsize=(12, 12))
ax = fig.add_subplot(111, xlabel='x', ylabel='y', title='Generated data and underlying model')
ax.plot(x_out, y_out, 'x', label='sampled data')
ax.plot(x, true_regression_line, label='true regression line', lw=2.)
plt.legend(loc=0);
with pm.Model() as model_robust:family = pm.glm.families.StudentT()pm.GLM.from_formula('y ~ x', data, family=family)trace_robust = pm.sample(progressbar=False, tune=1000)plt.figure(figsize=(12, 12))
plt.plot(x_out, y_out, 'x')
pm.plots.plot_posterior_predictive_glm(trace_robust,label='posterior predictive regression lines')
plt.plot(x, true_regression_line, label='true regression line', lw=3., c='y')
plt.legend();
Auto-assigning NUTS sampler...
Initializing NUTS using jitter+adapt_diag...
Multiprocess sampling (4 chains in 4 jobs)
NUTS: [lam, x, Intercept]
PyMC3
's glm()
function allows you to pass in a family
object that contains information about the likelihood.
- By changing the likelihood from a Normal distribution to a Student T distribution -- which has more mass in the tails -- we can perform Robust Regression.
概率编程库Pymc3案例之鲁棒线性回归相关推荐
- 概率编程库Pymc3案例之Coal mining disasters
github地址:https://github.com/pymc-devs/pymc3 案例说明:https://docs.pymc.io/notebooks/getting_started API参 ...
- 概率编程库Pymc3案例之神经网络(批量训练)
Pymc3提供minibatch训练,参考: https://twiecki.io/blog/2016/06/01/bayesian-deep-learning/ 但在ppc上却遇到测试集batch问 ...
- 概率编程库Pymc3案例之线性回归
参考:https://github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers 1. ...
- 概率编程库Pymc3案例之神经网络
参考:https://docs.pymc.io/getting_started.html https://twiecki.io/blog/2016/06/01/bayesian-deep-learni ...
- PyMC3 - GLM之鲁棒线性回归
数据产生 上一篇文章中使用的是仿真数据,然而在真实数据中往往存在许多异常值,本文向仿真数据中添加一些异常值来探讨如何增加线性回归的鲁棒性. %matplotlib inlineimport pymc3 ...
- python概率编程_Python概率编程库PyMC应用案例二则,pymc应用案例
Python概率编程库PyMC应用案例二则,pymc应用案例 这是受国防科大刘万伟老师委托发的概率编程方面的内容,这方面我不懂,为了避免解释错了,我就直接把刘老师的PPT资料截图发了. 代码执行结果为 ...
- 概率编程库Edward安装
概率编程库主流有:Stan.Pymc.Edward,先前选择pymc,结果发现遇到大规模数据基本跑不动,无奈转Edward. Edward:A library for probabilistic mo ...
- Python概率编程库PyMC应用案例二则
这是受国防科大刘万伟老师委托发的概率编程方面的内容,这方面我不懂,为了避免解释错了,我就直接把刘老师的PPT资料截图发了. 代码执行结果为: 0.236 对于上面这个例子(均匀分布的情况),当然可以通 ...
- 清华大学朱军:深度生成模型、算法和概率编程库(附视频+PPT)
近日举行的CCF YOCSEF"机器学习与新一代人工智能"学术报告会邀请到多位专家对统计机器学习.对抗学习.人工智能系统以及当前热点应用问题进行了探讨. 本文选自清华大学计算机系长 ...
最新文章
- python中lambda 表达式(无参数、一个参数、默认参数、可变参数(*args、**kwargs)、带判断的lambda、列表使用lambda)
- 显示串中只出现一次的字符.
- php依次替换src,如何在php中替换img中src内容
- ad域帐号登录提示无法处理请求_微软Windows Server之AD域控制器迁移测试方案
- php正则重复匹配,php – 用于匹配任何长度的所有重复子串的正则表达式
- java web项目无xml配置,完全javaconfig方式参考资料
- 30.课时30.【Django模板】autoescape标签使用详解(Av61533158,P30)
- SPH(光滑粒子流体动力学)流体模拟实现二:SPH算法(4)-算法实现1
- .net 获取xml里面的值_XML技术
- 绝地求生测试服画面优化软件,绝地求生大逃杀优化方法 画面优化工具使用教程_3DM单机...
- Jetpack来了:走近Google标准应用架构
- LFLT1000 流量计密封性自动化测试系统
- 秒 毫秒 微秒 纳秒 皮秒。。。时间单位换算
- PageOffice——动态填充Word模板并在线编辑
- 换手机 之导入通信录
- 网络常见状态码大全。收藏这一篇就够了(HTTP Status Code)
- 线性代数(3):矩阵
- 基于 Kubernetes 和 Spring Cloud 的微服务化实践
- Houdini Procedural Animation Techniques (cmiVFX--H11)
- java.util.concurrent 包源码分析之Fork/Join框架
热门文章
- Zookeeper分布式一致性原理(一):分布式架构
- mysql isolation level_MySQL数据库事务隔离级别(Transaction Isolation Level)
- linux查看vnc服务关闭,linux配置vncserver服务
- 【架构】技术-工具-平台-语言框架
- 重构改善既有代码设计--重构手法11:Move Field (搬移字段)
- 【Servlet】Java Serlvet Listener 监听器
- LiveBins缔造者
- sql 汉字转首字母拼音
- 利用jQuery对无序列表排序 http://www.apkbus.com/android-80639-1-1.html
- Symbian编程总结-图形图像篇-打开非Bitmap类型的图像