先发投手将被撤职。

pull-the-pitcher的Python项目详细描述


拉投手

Documentation

Predicting when MLB managers in the AL will pull their starting pitchers. This Deep, Recurrent Survival Analysis model is trained to predict the at-bat at which a pitcher is removed from the game, earning an F1-score of 0.97.

performance

安装

$ pip install pull-the-pitcher

如何获取数据

ptp库附带两个主要的命令行实用程序。安装ptp之后,假设您所在的环境是ptp,那么在命令行中应该可以直接使用这些文件。在

sqlite3db

中存储数据

第一个命令行实用程序是query_statcast,它调用pybaseball^{}函数从statcast检索基音级别的数据。此数据将存储在^{} db file中。下面是一个如何使用它的示例。在

^{pr2}$

为建模准备数据

下一个命令行实用程序是prep_data_for_modeling,它从前一个命令中创建的数据库中提取数据,然后执行功能工程和各种聚合,以生成符合机器学习模型的干净的bat级数据。下面是一个如何使用它的示例。在

$ prep_data_for_modeling --db_path /tmp/statcast_pitches.db --train_test_split_by start --output_path /tmp/
querying db at /tmp/statcast_pitches.db now.
In this dataset, there are 457 total games.
There are 63'openers' in the dataset.
There are 851 total eligible game-pitcher combinations in this dataset.
Just processed 0th start.
Just processed 100th start.
Just processed 200th start.
Just processed 300th start.
Just processed 400th start.
Just processed 500th start.
Just processed 600th start.
Just processed 700th start.
Just processed 800th start.
There are 91 unique pitcher's in this dataset['2019'] data ready for modeling and saved at /tmp/.

常见问题解答

  • 是否应将任何数据视为“未经审查”?

    • 棒球数据的好处在于它是全面的,干净的,公开的!所以,不,在生存分析意义上,没有一个数据是“删失”。我们知道每一个投手被逐出比赛的确切时间。在
  • 如果没有一个数据是未经审查的,为什么要使用生存分析技术?

    • 简而言之,他们的表现最好。大部分生存分析都致力于用both censored and uncensored data建模。由于我们的数据都不是空的,所以我们可以自由利用任何预测建模技术。然而,在这里,预测投手何时从游戏中被移除的过程非常适合时间到事件的建模框架,生存分析技术就是用来处理这个问题的。在
  • 这种方法与传统生存分析相比如何?

    • Traditional survival analysis通常被定义为一个回归问题,它涉及回归直到感兴趣事件发生的估计时间单位。或者,我们所采用的方法被定义为一个分类问题,并且涉及到预测感兴趣的事件(投手从游戏中移除)在每个时间单位(击球时)发生的概率
      • 虽然这种神经网络,分类式的方法是非传统的,但它并非闻所未闻,如here和{a7}。在
  • 这种深度的、循环的生存分析模型与传统的LSTM有什么不同?

    1. 像其他的递归神经网络一样,我们的模型预测投手在每次击球后被抽中的条件概率(以到那时为止发生的游戏为条件)。这里的新颖之处在于,模型“通过概率链规则估计生存率,该规则捕捉相邻at蝙蝠之间的顺序依赖模式,并更有效地反向传播梯度。”(引自the original paper第2页)。在

    2. 通过使用event timeevent rate损失函数进一步加强了通过概率链规则估计生存率的概念。注意,虽然我们的目标是二进制的,我们没有使用传统的log loss来训练这个模型。在

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

推荐PyPI第三方库


热门话题
如何使用Java代码从包含嵌套数据的Json数组中获取值   java休眠每个实体两个表   java用新行合并两个字符串   JavaGuice是否对特定实例使用注入?   java仅为安装程序和应用程序将jre嵌入WInrun4j一次   在JAVA usng Gson中解析JSON   在Java中一次遍历二叉树就能得到树的最小高度和最大高度?   按子列表中的项对Java列表进行排序   java如何使用SpringJPA存储库正确保存带有外键的对象?   java Eclipse OSGI未满足的约束   滑动菜单库的java问题   java在推断具有整数基数约束的实例时遇到的问题   java如何通过Spring Boot/Tomcat发送带有GET参数的json?   java无法解析AndroidWeetSheet库的依赖项   使用RESTAPI上载到Azure Blob存储时,java Zip存档文件会损坏   java如何在单击JButton时使用swing创建新窗口   java如何从数据库中获取序列的下一个值,并使用oracle 10g在netbeans的JOptionPane中显示它?   java Android从值中获取字符串资源Id   java在maven中将jar添加到部署程序集中的等价物是什么