模型输出灵敏度分析中shapley效应的估计。
shapley-effects的Python项目详细描述
[![生成状态](https://gitlab.com/CEMRACS17/shapley-effects/badges/master/build.svg)](https://gitlab.com/CEMRACS17/shapley-effects/commits/master) [![覆盖率报告](https://gitlab.com/CEMRACS17/shapley-effects/badges/master/coverage.svg)](https://gitlab.com/CEMRACS17/shapley-effects/commits/master) #Shapley效果
shapley effects或shapley是一个python库,它为模型输出的敏感度分析领域估计shapley effects[[1]](http://epubs.siam.org/doi/pdf/10.1137/16M1097717)。库中提供了一些功能。对于给定的概率模型和数值函数,可以:
- 计算shapley效果,
- 计算相关和独立输入的Sobol'指数,
- 建立替代模型来代替数值函数。
该库主要建立在numpy、openturns等库之上。它也被验证并与r软件中的[灵敏度](https://github.com/cran/sensitivity/)包进行了比较。
##重要链接
- 示例笔记本可在[示例目录](https://gitlab.com/CEMRACS17/shapley-effects/tree/dev/examples)中找到。
- 问题:[https://gitlab.com/CEMRACS17/shapley-effects/issues](https://gitlab.com/CEMRACS17/shapley-effects/issues)
##安装
此库中需要各种依赖项,我们强烈建议安装时使用[anaconda](https://anaconda.org/)。依赖项是:
- 努比,
- 短促,
- 熊猫,
- 开口转弯,
- 科学套件学习,
- 总流量。
scikit-learn用于建立kriging和随机森林模型。openturns是定义概率分布的一个非常方便的工具。利用tensorflow从gpy生成kriging模型的gpflow。
对于绘制或调整模型等各种任务,也需要可选的依赖关系:
- matplotlib,
- 肖伯恩,
- SCIKIT优化。
使用anaconda和pip可以很容易地安装这些库。执行以下命令:
` conda install numpy pandas scikit-learn tensorflow matplotlib seaborn scikit-optimize conda install -cconda-forge openturns gpy `
包gpflow在anaconda或pypi上不可用。因此,必须从源安装。首先克隆github存储库:
` git clone https://github.com/GPflow/GPflow.git `
然后,在gpflow文件夹中,执行以下命令:
` pip install . `
##致谢
该图书馆是在[CEMRACS 2017](http://smai.emath.fr/cemracs/cemracs17/)的帮助下,在伯特兰·伊奥斯、罗曼·苏厄、维罗尼克·毛姆·德尚和克莱门汀·普里尔的帮助下开发的。
##参考资料
[1]Owen,A.B.,&Prieur,C.(2017年)。关于用shapley值衡量相依输入的重要性。暹罗/ASA不确定度量化杂志,5(1),986-1002。
[2]Song,E.,Nelson,B.L.,&Staum,J.(2016年)。全球敏感性分析中的shapley效应:理论与计算。暹罗/ASA不确定度量化杂志,4(1),1060-1083。