Python库对预测进行评分
predictionscorer的Python项目详细描述
Python预测记分器
<;small>;Table of contents generated with markdown-toc<;/small>
动机
这个库的目的是给预测打分。在
背景
这个库中的一些代码来自我在Empiricast的工作,这是一家我与人共同创办的预测初创公司。在
有关评分规则的详细介绍,请参见Calibration Scoring Rules for Practical Prediction Trainingby Spencer Greenberg。在
特点
- 选择预测的4个评分规则:
- 荆棘
- 对数
- 实用的
- 二次方的
- 完全类型暗示
- 100%测试覆盖率
REST API
Python预测记分器也作为restapi提供。如果我们不支持Python,我们就不支持Python了。文档可在https://predictionscorer.herokuapp.com/docs上找到。在
安装
pip install predictionscorer
系统要求
Python预测记分器需要python3.8。在
使用
选择预测
对于choice预测,预报员将概率分配给不同的答案。举个例子,假设乔治和克莱默对主队最终获胜的比赛结果做出了以下预测:
Result | George | Kramer | Correct |
---|---|---|---|
Home team wins | 40 % | 65 % | Yes |
Tie | 30 % | 10 % | No |
Away team wins | 30 % | 25 % | No |
克莱默认为正确答案的概率比乔治高,所以他的预测更好。但有多好?为了找出答案,我们必须量化他们预测的质量。这就是图书馆的工作。在
我们有四个评分规则来确定这一点:
- 荆棘
- 对数
- 实用的
- 二次方的
让我们看看每一个。在
荆棘
Brier评分范围从0到2。越低越好。在
frompredictionscorer.rulesimportbrier_scoregeorge_probability=0.4kramer_probability=0.65george_score=brier_score(george_probability)# 0.72kramer_score=brier_score(kramer_probability)# 0.2450
对数
对数分数范围从接近无穷大(最差)到0(最佳):
^{pr2}$实用
实际得分范围从接近负无穷大(最差)到可配置的最大值-我们使用2:
frompredictionscorer.rulesimportpractical_scoregeorge_probability=0.4kramer_probability=0.65george_score=practical_score(0.4)# -0.64kramer_score=practical_score(0.65)# 0.76
practical_score
接受两个可选参数:
二次型
二次得分范围为-1(最差)到1(最佳):
frompredictionscorer.rulesimportquadratic_scoregeorge_probability=0.4kramer_probability=0.65george_score=quadratic_score(george_probability)# 0.28kramer_score=quadratic_score(kramer_probability)# 0.76
变更日志
见CHANGELOG.md。在
贡献
如果您发现任何问题或改进的潜力,请open an issue on GitHub。他们很受欢迎。在这一点上,对API设计的评论尤其有用。在
另请参见CONTRIBUTING.md。在
- 项目
标签: