python中的正确评分规则
properscoring的Python项目详细描述
Proper scoring rules用于评估python中的概率预测。 “严格正确”的评价方法不能人为改进 通过套期保值,使他们能够公平地获得 概率预测。特别是,这些规则通常用于 评估天气预报。
properscoring在python 2和3上都运行。它需要numpy(1.8或 稍后)和scipy(任何最新版本都可以)。numba是可选的, 但受到高度鼓励:它能显著加速(例如,20倍的速度) 对于crps_ensemble和threshold_brier_score。
要安装,请使用pip:pip install properscoring。
示例:计算crp的五种方法
这个图书馆的重点是 Continuous Ranked Probability Score(crps)和Brier Score。我们喜欢 这些分数是因为它们都是可解释的(例如,CRP是 平均绝对误差的推广 概率分布的样本数。
我们将说明如何根据 高斯随机变量。首先,导入properscoring:
import numpy as np import properscoring as ps from scipy.stats import norm
使用crps_gaussian精确计算(这是最快的方法):
>>>> ps.crps_gaussian(0, mu=0, sig=1) 0.23369497725510913
数值积分与crps_quadrature:
>>> ps.crps_quadrature(0, norm) array(0.23369497725510724)
从一个有crps_ensemble:
的有限样本>>> ensemble = np.random.RandomState(0).randn(1000) >>> ps.crps_ensemble(0, ensemble) 0.2297109370729622
按PDF值加权,带crps_ensemble:
>>> x = np.linspace(-5, 5, num=1000) >>> ps.crps_ensemble(0, x, weights=norm.pdf(x)) 0.23370047937569616
基于crps的threshold decomposition与 threshold_brier_score:
>>> threshold_scores = ps.threshold_brier_score(0, ensemble, threshold=x) >>> (x[1] - x[0]) * threshold_scores.sum(axis=-1) 0.22973090090090081
在本例中,我们只对一个观测/预测对进行了评分。但是 为了可靠地评估预测模型,您需要在 许多观察。幸运的是,所有的得分规则 接受并返回多维数组形式的观测值:
>>> ps.crps_gaussian([-2, -1, 0, 1, 2], mu=0, sig=1) array([ 1.45279182, 0.60244136, 0.23369498, 0.60244136, 1.45279182])
一旦你计算出平均分,通常有助于将它们标准化 相对于计算所谓“技能得分”的基线预测, 定义为0表示与基线相比没有改进,1 表示完美的预测。例如,假设我们的基线 预测总是预测0:
>>> obs = [-2, -1, 0, 1, 2] >>> baseline_score = ps.crps_ensemble(obs, [0, 0, 0, 0, 0]).mean() >>> forecast_score = ps.crps_gaussian(obs, mu=0, sig=1).mean() >>> skill = (baseline_score - forecast_score) / baseline_score >>> skill 0.27597311068630859
一个标准正态分布在预测这五个方面要好28% 观察。
API
properscoring包含优化和广泛测试的例程 评分概率预测。这些功能目前分为两部分 类别:
- 连续排名概率得分(CRP):
- 对于集合预测:crps_ensemble
- 对于高斯分布:crps_gaussian
- 对于任意累积分布函数:crps_quadrature
- Brier分数:
- 对于二元概率预测:brier_score
- 对于集合预测的阈值超出:threshold_brier_score
所有函数对由浮点表示的缺失值都是健壮的 点值NaN。
历史记录
这个图书馆是由气候公司的研究人员编写的。这个 原创作者包括Leon Barrett、Stephan Hoyer、Alex Kleeman和 德鲁·奥凯恩。
许可证
版权所有2015 The Climate Corporation
根据apache许可证2.0版(以下简称“许可证”)授权; 除非符合许可证,否则您不能使用此文件。 您可以在
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则软件 根据许可证分发是按“原样”分发的, 无任何明示或默示的保证或条件。 有关管理权限的特定语言和 许可下的限制。
贡献
外部贡献(错误修复或与正确评分相关的新功能 规则)非常欢迎!请打开一个github问题来讨论 计划。