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第三方库


热门话题
在OSGI中使用cxf生成的客户端时出现Java类装入器问题和JaxB异常   java为什么要在javamail中迭代多部分电子邮件中的部分?   并发编程问题   JFileChooser&&System中未调用java windowClosing。退出功能不正常?   SQL查询的java语法分析   java如何使用AspectJ声明字段上的警告   什么是java向量。元素()C#等价物   java解析Android应用程序中tornado web服务中的CSV文件   java我试过c2dm,我需要服务器端   java调整JPanel大小以适应新的JLabel图标   Java与Python脚本的通信   java使用Saxon通过XSLT生成URL   java net::ERR_complete_CHUNKED_编码200(OK)来自struts应用程序中的tomcat   java如何为我的窗格设置不同的位置?   java使用Cypher Neo4j获取给定类型的所有节点(从SQL世界中的tablename中选择*)   nio使用Java解析文件值   java使用WSDL生成REST客户端会是错误的方向吗?   java如何在我的应用程序中构建类映射?   java按钮。setEnabled在第一个循环中不起作用   xPath适用于最后一页,但不适用于第一页