Python库对预测进行评分

predictionscorer的Python项目详细描述


Code style: BlacktestsPyPI version

Python预测记分器

<;small>;Table of contents generated with markdown-toc<;/small>

动机

这个库的目的是给预测打分。在

背景

这个库中的一些代码来自我在Empiricast的工作,这是一家我与人共同创办的预测初创公司。在

有关评分规则的详细介绍,请参见Calibration Scoring Rules for Practical Prediction Trainingby Spencer Greenberg。在

特点

  1. 选择预测的4个评分规则:
    1. 荆棘
    2. 对数
    3. 实用的
    4. 二次方的
  2. 完全类型暗示
  3. 100%测试覆盖率

REST API

Python预测记分器也作为restapi提供。如果我们不支持Python,我们就不支持Python了。文档可在https://predictionscorer.herokuapp.com/docs上找到。在

安装

pip install predictionscorer

系统要求

Python预测记分器需要python3.8。在

使用

选择预测

对于choice预测,预报员将概率分配给不同的答案。举个例子,假设乔治和克莱默对主队最终获胜的比赛结果做出了以下预测:

ResultGeorgeKramerCorrect
Home team wins40 %65 %Yes
Tie30 %10 %No
Away team wins30 %25 %No

克莱默认为正确答案的概率比乔治高,所以他的预测更好。但有多好?为了找出答案,我们必须量化他们预测的质量。这就是图书馆的工作。在

我们有四个评分规则来确定这一点:

  1. 荆棘
  2. 对数
  3. 实用的
  4. 二次方的

让我们看看每一个。在

荆棘

Brier评分范围从0到2。越低越好。在

Brier scores for probabilities 0-100

frompredictionscorer.rulesimportbrier_scoregeorge_probability=0.4kramer_probability=0.65george_score=brier_score(george_probability)# 0.72kramer_score=brier_score(kramer_probability)# 0.2450

对数

对数分数范围从接近无穷大(最差)到0(最佳):

Logarithmic scores for probabilities 0-100

^{pr2}$

实用

实际得分范围从接近负无穷大(最差)到可配置的最大值-我们使用2:

Practical scores for probabilities 0-100

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接受两个可选参数:

^{tb2}$

二次型

二次得分范围为-1(最差)到1(最佳):

Quadratic scores for probabilities 0-100

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。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在点击JButton触发的进程仍在处理时更新JLabel?   try-catch为什么Java有嵌套的try语句?   java SSH命令执行失败,出现异常“net.schmizz.sshj.connection.ConnectionException:引发连接重置异常”   java在ApacheCamel的接口类解析器中,resolveMandatoryClass(字符串名称)有什么用途?   java如何在Eclipse远程调试器中找到有问题的线程?   java线程:containerlaunch退出代码127的异常   lambda左连接Java中的2个对象列表   Swift 2.0协议扩展和Java/C抽象类之间有区别吗?   安卓改造:使用GSON将JSON解析为多个Java对象   Spring中服务层的java角色(澄清)   html Java与网站的通信   Spring boot rest api是在不创建java类的情况下将getResultList()转换为映射以显示响应的最佳方法吗?   使用“getElementById”从javascript获取值到java   java如何在文本视图中以粗体和多色显示文本   java是设置TextView颜色的最有效方法