pymc.Data#
- pymc.Data(name, value, *, dims=None, coords=None, export_index_as_coords=False, infer_dims_and_coords=False, mutable=None, **kwargs)[源代码]#
数据容器,用于在模型中注册数据变量。
根据
mutable
设置(默认:True),该变量被注册为一个SharedVariable
,使其能够在值和形状上被改变,但不能通过pymc.set_data()
改变维度。要设置数据容器变量的值,请查看
pymc.Model.set_data()
。在进行预测或进行后验预测采样时,注册的数据变量的形状很可能需要更改。如果遇到 PyTensor 形状不匹配错误,请参考
pymc.model.set_data()
的文档。更多信息,请阅读笔记本 Using Data Containers。
- 参数:
- 名称 :
str
str
这个变量的名称。
- valuenumpy:array_like 或 pandas.Series, pandas.Dataframe
与此变量关联的值。
- dims :
str
或tuple
的str
,可选python:str 或 python:tuple of python:str, 可选 随机变量的维度名称(与这些随机变量的形状相对)。当
value
是 pandas Series 或 DataFrame 时使用此项。dims
将是 Series / DataFrame 的列名。有关维度和坐标的更多信息,请参阅 ArviZ 文档:ArviZ Quickstart。如果未指定此参数,随机变量将没有维度名称。- coords :
dict
, 可选python:dict, 可选 为此
Data
变量引入的新维度设置的坐标值。- export_index_as_coords : 布尔值布尔
已弃用,先前版本的“infer_dims_and_coords”
- infer_dims_and_coords : bool, 默认=Falsebool, 默认=False
如果为 True,
Data
容器将尝试推断坐标和维度名称,如果value
中存在索引。- mutable : 布尔值, 可选bool, 可选
在创建
SharedVariable
(mutable=True
) 和创建TensorConstant
(mutable=False
) 之间切换。考虑使用pymc.ConstantData
或pymc.MutableData
作为pm.Data(..., mutable=...)
的更简洁替代方案。如果未指定此参数,其取值将取决于包的版本。自v4.1.0
起,默认值为mutable=False
,而之前的版本为mutable=True
。- **kwargs :
dict
, 可选python:dict, 可选 传递给
pytensor.shared()
的额外参数。
- 名称 :
示例
>>> import pymc as pm >>> import numpy as np >>> # We generate 10 datasets >>> true_mu = [np.random.randn() for _ in range(10)] >>> observed_data = [mu + np.random.randn(20) for mu in true_mu]
>>> with pm.Model() as model: ... data = pm.MutableData('data', observed_data[0]) ... mu = pm.Normal('mu', 0, 10) ... pm.Normal('y', mu=mu, sigma=1, observed=data)
>>> # Generate one trace for each dataset >>> idatas = [] >>> for data_vals in observed_data: ... with model: ... # Switch out the observed dataset ... model.set_data('data', data_vals) ... idatas.append(pm.sample())