一个Python库,提供计算模型的参数筛选,使用Morris基本效应方法或Cuntz,Mai等人对有效基本效应的扩展(Water Res Res Res,2015)。
pyeee的Python项目详细描述
计算模型的参数筛选
基于Morris的计算模型参数筛选Python库 初等效应法及其有效/序贯初等的推广 《水效应研究》(Cuntz,2015)。在
关于Pyee
pyeee是一个Python库,用于执行计算的参数筛选 模型。它使用了Morris的基本效应方法及其推广 有效的或连续的基本效应
Cuntz,Mai等人。(2015)
非信息模型的计算廉价辨识
按顺序筛选的参数
^水资源研究,
doi:10.1002/2015WR016907。在
该包使用JAMS Python包的几个函数
https://github.com/mcuntz/jams_python
JAMS包和hesseflux是不规则同步的。在
pyeee既可用于Python函数,也可用于外部程序,使用 {a9}例如^。 函数求值可以通过Python的多处理或MPI进行分发。在
文件
有关pyeee的完整文档可从“阅读文档”获得。在
http://pyeee.readthedocs.org/en/latest/
快速使用指南
简单Python函数
考虑Ishigami Homma函数:y = sin(x_0) + a*sin(x_1)^2 + b*x_2^4*sin(x_0)
。在
取a = b = 1
得到:
importnumpyasnpdefishigami1(x):returnnp.sin(x[0])+np.sin(x[1])**2+x[2]**4*np.sin(x[0])
三个参数x_0
,x_1
,x_2
在-pi
和{
莫里斯的基本效应可以计算如下:
^{pr2}$给出了基本效果($\mu*$):
# mu*print("{:.1f}{:.1f}{:.1f}".format(*out[:,0]))# gives: 173.1 0.6 61.7
顺序基本效应区分信息性和非信息性 使用数倍于Morris基本效应的参数:
# screenfrompyeeeimporteeenp.random.seed(seed=1023)# for reproducibility of examplesout=eee(ishigami1,lb,ub,ntfirst=10)
对于信息参数和 对于不具信息性的参数为False:
print(out)[TrueFalseTrue]
具有额外参数的Python函数
pyee的函数必须是func(x)
的形式。使用Python的partial from
functtools模块传递其他函数参数。在
例如,将参数$a$和$b$传递给Ishigami Homma函数。在
importnumpyasnpfrompyeeeimporteefromfunctoolsimportpartialdefishigami(x,a,b):returnnp.sin(x[0])+a*np.sin(x[1])**2+b*x[2]**4*np.sin(x[0])defcall_func_ab(func,a,b,x):returnfunc(x,a,b)# Partialise function with fixed parametersa=0.5b=2.0func=partial(call_func_ab,ishigami,a,b)npars=3# lower boundarieslb=np.ones(npars)*(-np.pi)# upper boundariesub=np.ones(npars)*np.pi# Elementary Effectsnp.random.seed(seed=1023)# for reproducibility of examplesout=ee(func,lb,ub,10)
形象地说,partial
将a
和{call_func_ab
已经在定义期间,这样{em1}$pyeee就可以简单地调用它了
作为func(x)
,因此{call_func_ab
。在
函数包装器
我们建议使用该软件包 partialwrap,它提供 要与partial一起使用的包装。在
frompyeee.utilsimportfunc_wrapperargs=[a,b]kwargs={}func=partial(func_wrapper,ishigami,args,kwargs)# screenout=eee(func,lb,ub)
无论有没有Python函数,都可以使用包装器 屏蔽参数,以及外部程序的包装器。在
有关详细信息,请参阅文档:
http://pyeee.readthedocs.org/en/latest/
安装
最简单的安装方法是通过pip
:
pip install pyeee
请参阅中的installation instructionsdocumentation了解更多信息。在
要求:
许可证
pyeee是根据麻省理工学院的许可证分发的。
有关详细信息,请参阅LICENSE文件。在
版权所有(c)2013-2020 Matthias Cuntz,Juliane Mai
{a10}由一个^结构提供。在
对Pyee的贡献
欢迎用户提交错误报告、功能请求和代码 通过GitHub为本项目提供的捐款。在
更多信息可在 Contributing 指导方针。在
- 项目
标签: