先发投手将被撤职。
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.
安装
$ pip install pull-the-pitcher
如何获取数据
ptp
库附带两个主要的命令行实用程序。安装ptp
之后,假设您所在的环境是ptp
,那么在命令行中应该可以直接使用这些文件。在
在sqlite3
db
中存储数据
第一个命令行实用程序是query_statcast
,它调用pybaseball
的^{
为建模准备数据
下一个命令行实用程序是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}。在
- Traditional survival analysis通常被定义为一个回归问题,它涉及回归直到感兴趣事件发生的估计时间单位。或者,我们所采用的方法被定义为一个分类问题,并且涉及到预测感兴趣的事件(投手从游戏中移除)在每个时间单位(击球时)发生的概率。
- 在
这种深度的、循环的生存分析模型与传统的LSTM有什么不同?
- 在
像其他的递归神经网络一样,我们的模型预测投手在每次击球后被抽中的条件概率(以到那时为止发生的游戏为条件)。这里的新颖之处在于,模型“通过概率链规则估计生存率,该规则捕捉相邻at蝙蝠之间的顺序依赖模式,并更有效地反向传播梯度。”(引自the original paper第2页)。在
在 - 在
通过使用event time和event rate损失函数进一步加强了通过概率链规则估计生存率的概念。注意,虽然我们的目标是二进制的,我们没有使用传统的log loss来训练这个模型。在
在
- 在
- 项目
标签: