社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

【机器学习】用可视化的方式直观理解Bayesian models

机器学习初学者 • 2 年前 • 360 次点击  

如果你感觉Bayesian models反直觉,不好理解!
本期分享两个工具,利用可视化的直观方式探索贝叶斯模型


1、Python ArviZ

主要包含以下4方面功能:

  • 后验分析,posterior analysis
  • 数据存储,data storage
  • 样本诊断,sample diagnostics
  • 模型比较,model comparison
  • 模型检验,Model Checking

以下举例简单介绍,


后验分析,posterior analysis

可以基于matplotlib,

import matplotlib.pyplot as plt
# arviz底层可选matplotlib或者bokeh,此处选matplotlib
import arviz as az
plt.figure(dpi=150)
az.style.use("ggplot")  #类似matplotlib中的plt.style.use

#数据准备
data = az.load_arviz_data("centered_eight")
coords = {"school": ["Choate"]}

# plot_posterior
axes = az.plot_posterior(
    data,
    var_names=["mu""theta"],
    coords=coords,
    rope=(-11),
    figsize=(11.55),
)

fig = axes.flatten()[0].get_figure()
fig.suptitle("Centered Eight: mu and theta for Choate")

plt.show()

也可以基于Bokeh:Plotting with Bokeh

import arviz as az

data = az.load_arviz_data("centered_eight")

coords = {"school": ["Choate""Mt. Hermon""Deerfield"]}

#同样使用plot_posterior
ax = az.plot_posterior(
    data,
    var_names=["mu""theta"],
    combine_dims={"school"},
    coords=coords,
    backend="bokeh",
)

样本诊断,sample diagnostics

import matplotlib.pyplot as plt
import arviz as az

data = az.load_arviz_data("centered_eight")

coords = {"school": ["Choate""Deerfield"]}
az.plot_pair(
    data,
    var_names=["theta""mu""tau"],
    coords=coords,
    divergences=True,
    textsize=22,
)

plt.show()

模型比较,model comparison

import arviz as az

centered_data = az.load_arviz_data("centered_eight")
non_centered_data = az.load_arviz_data("non_centered_eight")

axes = az.plot_density(
    [centered_data, non_centered_data],
    data_labels=["Centered""Non-Centered"],
    var_names=["theta"],
    shade=0.2,
)

fig = axes.flatten()[0].get_figure()
fig.suptitle("94% High Density Intervals for Theta")

plt.show()

模型检验,Model Checking

import matplotlib.pyplot as plt
import arviz as az

data = az.load_arviz_data("non_centered_eight")
az.plot_ppc(data, alpha=0.05, kind="cumulative", textsize=14)

plt.show()

2、R bayesplot

主要利用可视化探索马尔科夫链蒙特卡洛方法MCMC拟合后的Bayesian models功能都在下图中了,

-推荐阅读-

往期精彩回顾




Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/148509
 
360 次点击