python - 将两个列表传递给 Python 函数
问题描述
我正在尝试运行 python 包pyabc(近似贝叶斯计算)以在两个值列表之间进行模型选择,即model_1=[2,3,4,5]和model_2=[3,4,2,5]。pyabc 的主要功能是ABCSMC,它指出
Definition : ABCSMC(models: Union[List[Model], Model], parameter_priors:
Union[List[Distribution], Distribution, Callable], distance_function: Union[Distance,
Callable]=None, population_size: Union[PopulationStrategy, int]=100, summary_statistics:
Callable[[model_output], dict]=identity, model_prior: RV=None)
我不知道在下面提到的代码中在哪里定义和传递我的两个列表model_1和model_2。我尝试了几次,但由于我是 Python 新手,所以无法做到。我正在关注下面提到的示例及其代码。
import os
import tempfile
import scipy.stats as st
import pyabc
# Define a gaussian model
sigma = .5
def model(parameters):
# sample from a gaussian
y = st.norm(parameters.x, sigma).rvs()
# return the sample as dictionary
return {"y": y}
# We define two models, but they are identical so far
models = [model, model]
# However, our models' priors are not the same.
# Their mean differs.
mu_x_1, mu_x_2 = 0, 1
parameter_priors = [
pyabc.Distribution(x=pyabc.RV("norm", mu_x_1, sigma)),
pyabc.Distribution(x=pyabc.RV("norm", mu_x_2, sigma))
]
abc = pyabc.ABCSMC(
models, parameter_priors,
pyabc.PercentileDistance(measures_to_use=["y"]))
db_path = ("sqlite:///" +
os.path.join(tempfile.gettempdir(), "test.db"))
history = abc.new(db_path, {"y": y_observed})
print("ABC-SMC run ID:", history.id)
# We run the ABC until either criterion is met
history = abc.run(minimum_epsilon=0.2, max_nr_populations=5)
解决方案
pyABC 中的模型选择旨在在不同的候选模型中决定哪个模型最好地描述一组常见的观察数据。在上面的代码中,您通常会在模型列表中使用不同的模型models = [model1, model2]
。我不确定您所说的模型选择列表是什么意思?
对于它试图解决的底层算法和问题,另见原始论文https://doi.org/10.1093/bioinformatics/btp619。
推荐阅读
- firebase - 基于年份和月份的统计
- apollo-client - Apollo Client 3:替换 Query 对象的 nuggets 字段时可能会丢失缓存数据
- python - 如何更改 tkinter 中所有小部件的颜色主题?
- reactjs - 单击使用react将数据从数据库导出到excel表
- python - 为什么 Django Rest Framework 在我过滤时会在我的 URL 上添加斜杠?
- excel - 用户定义的函数如何不能返回准确的数据?
- python - Pyvista 访问 VTK 文件值
- wcf - 总是得到“System.Net.WebException:请求被中止:无法创建 SSL/TLS 安全通道。” 每当我们进行部署时
- python-3.x - Tkinter 按钮
- mapping - Tableau 将属性映射到唯一标识符