统计学习方法第十九章作业:马尔可夫链蒙特卡罗法、吉布斯抽样算法(书上题目) 代码实现
马尔可夫链蒙特卡罗法
作业19.7
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import betaclass MCMC:def __init__(self,scale=0.5):self.ta = np.random.random(1)self.scale = 0.5def update_ta(self):ta_n = np.random.normal(loc=self.ta, scale=self.scale, size=1)[0]a = min(1,beta.pdf(ta_n,1,1)/beta.pdf(self.ta,1,1))u = np.random.random(1)if u <= a :self.ta = ta_ndef fit(self,n,m):self.sample_list = []for i in range(m):self.update_ta()if i > n :self.sample_list.append(self.ta)def plot(self):plt.hist(self.sample_list,bins=50,alpha=0.3)plt.show()def main():mc = MCMC(0.2)mc.fit(5000,10000)print(np.mean([beta.pdf(x,1,1) for x in mc.sample_list])*0.4)mc.plot()if __name__ == '__main__':main()
例题19.10
import numpy as np
import matplotlib.pyplot as pltclass MCMC:def __init__(self,p=None):self.p = pself.x1 = np.random.random(1)[0]self.x2 = np.random.random(1)[0]def update_x1(self):self.x1 = np.random.normal(loc=self.p*self.x2, scale=np.sqrt(1-self.p**2), size=1)[0]def update_x2(self):self.x2 = np.random.normal(loc=self.p*self.x1, scale=np.sqrt(1-self.p**2), size=1)[0]def fit(self,n,m):self.sample_list = []self.x1_list = []self.x2_list = []for i in range(m):self.update_x1()self.update_x2()if i > n :self.sample_list.append((self.x1,self.x2))self.x1_list.append(self.x1)self.x2_list.append(self.x2)def plot(self):plt.hist(self.x1_list,bins=50,alpha=0.3)plt.hist(self.x2_list,bins=50,alpha=0.3)plt.hist(np.random.normal(loc=0, scale=np.sqrt(1-self.p**2), size=5000),bins=50,alpha=.3)plt.show()def main():mc = MCMC(0.5)mc.fit(5000,10000)print(mc.sample_list)mc.plot()if __name__ == '__main__':main()
统计学习方法第十九章作业:马尔可夫链蒙特卡罗法、吉布斯抽样算法(书上题目) 代码实现相关推荐
- 统计学习方法第十六章作业:PCA主成分分析算法 代码实现
PCA主成分分析 import numpy as np class PCA:def __init__(self,x,R=None):self.x = np.array(x)self.dim = sel ...
- 统计学习方法第十五章作业:SVD矩阵分解 代码实现 及其在推荐的应用和矩阵压缩意义
SVD矩阵分解 import numpy as npclass SVD:def __init__(self,x):self.x = np.array(x)def get_r_rv(self,x):x ...
- 统计学习方法第十四章作业:聚类—层次聚类聚合/分裂算法、K_means聚类算法 代码实现
层次聚类聚合/分裂算法 import numpy as np import copy import matplotlib.pyplot as pltclass Hierarchical_cluster ...
- 《统计学习方法(第2版)》李航 第19章 马尔可夫蒙特卡罗法 MCMC 思维导图笔记 及 课后全部习题答案(步骤详细, 包含Metropolis算法,吉布斯算法代码实现)第十九章
思维导图: 19.1 用蒙特卡罗积分法求: ∫−∞∞x2exp(−x22)dx\int_{-\infty}^{\infty} x^{2} \exp \left(-\frac{x^{2}}{2}\ri ...
- 信息系统项目管理师---第十七章 战略管理 第十八章 组织级项目管理 第十九章 流程管理历年考题
信息系统项目管理师-第十七章 战略管理 第十八章 组织级项目管理 第十九章 流程管理历年考题 第十七章 战略管理历年考题 1.2005 年 5 月第 57 题 :战略管理的主要活动可以分为下列中的(B ...
- 数字图像处理:第十九章 立体视觉
第十九章 立体视觉 目录 1. 引言 2. 双目立体视觉(BinocularStereo Vision) 2.1 双目立体视觉模型 2.2 匹配基元 2.3 匹配算法 2.4 双目立体视觉 ...
- 复现经典:《统计学习方法》第 10 章 隐马尔可夫模型
本文是李航老师的<统计学习方法>[1]一书的代码复现. 作者:黄海广[2] 备注:代码都可以在github[3]中下载. 我将陆续将代码发布在公众号"机器学习初学者", ...
- 【Java数据结构与算法】第十九章 贪心算法、Prim算法和Kruskal算法
第十九章 贪心算法.Prim算法和Kruskal算法 文章目录 第十九章 贪心算法.Prim算法和Kruskal算法 一.贪心算法 1.介绍 2.支付问题 二.Prim算法 1.最小生成树 2.介绍 ...
- 类 workbooks 的 open 方法无效_第十九章 Cach 命令大全 OPEN 命令
第十九章 Caché 命令大全 OPEN 命令 获取输入/输出操作的设备或文件的所有权. 重点 打开设备要指定延迟秒,否则将无限等待. 大纲 OPEN:pc device:(parameters):t ...
最新文章
- Python_List对象内置方法详解
- python人工智能-马哥教育官网-专业Linux培训班,Python培训机构
- 送你一朵小红花观后感
- 一套完整的用户增长系统架构
- 西建大历年电子与通信工程复试真题_学姐分享2020年西安电子科技大学电子与通信工程考研初复试经验指导...
- 关于MQTT协议的说明
- python中、if语句的下一句一定要缩进吗_【python公开课|Python if else对缩进的要求是什么,想做好python,就一定要看这个文章】- 环球网校...
- python数据分析与挖掘实战pdf_《Python数据分析与挖掘实战》PDF+完整源码
- EF CodeFirst类生成器
- gitlab 安装、配置、清空、卸载、重装
- soap报文解析 php,soap 返回报文解析
- maven编译,执行测试用例报错 The forked VM terminated without saying properly goodbye. VM crash or System.exit c
- 游戏引擎设计的技术及详解
- python控制苹果手机触摸屏失灵怎么办_苹果手机触摸屏失灵的各种解决方法
- igg google
- 这才不是我想看的《时间简史》
- 如何解决计算工作日的问题?
- Ubuntu下安装RabbbitVCS(图形化svn管理工具)-- Ubuntu也有TortoiseSVN
- 第十二届蓝桥杯初赛试题B直线
- 2022.05.07基金策略研究
热门文章
- 《C++标准程序库》笔记之二
- Linux 重新挂载分区的方法
- PHP和MySQL处理树状、分级、无限分类、分层数据的方法
- SQL 触发器 当修改TEST表中的F1字段时,同时根据条件修改F2字段
- 医学论文摘要撰写的四要素以及注意事项
- 转载:vscode gcc makefile git 配置入门
- 计算机进桌面后反复重启,我的电脑一插网线就自动重启。到界面之后又马上重启。一直循环。...
- applicaiton.yml 日志配置_底层基于Apache Hudi的DLA最佳实践 海量、低成本日志分析...
- 中南林科大c语言程序设计,2017年中南林业科技大学计算机与信息工程学院802C语言与数据结构之C程序设计考研题库...
- php怎么去除变量里的换行,php去除字符串换行符示例分享