第二名解决方案
第二名解决方案
作者: Branden Murray, mlandry, JohnM, KazAnova
发布时间: 2021-09-27
我们的最终模型是6个GBM模型的融合(5个LightGBM,1个Xgboost),所有模型都在相同的特征上进行训练。我们在数据的最后一个月进行验证,然后在完整的数据集上重新训练模型。
模型配置
- LightGBM - objective=”regression_l1”
- LightGBM - objective=”regression_l2” - 目标值经过双重平方根缩放
- LightGBM - objective=”regression_l1” - boost_from_average=True
- LightGBM - objective=”regression_l1”, 'max_depth': -1
- LightGBM DART - object=’regression_l1’, boosting=’dart’
- Xgboost - 目标值经过双重平方根缩放
特征工程
我们的最终特征集包含超过1000个特征,主要分为以下3类:
- 目标聚合 - 每位球员的目标值历史全量和滚动12个月的均值/方差。
- 近期数据 - 每位球员过去20天/比赛的各种统计数据。例如,每位球员的
strikeouts_1_day_ago(1天前的三振数)、strikeouts_2_days_ago(2天前的三振数)……一直到 strikeouts_20_days_ago(20天前的三振数)。
- 领域知识特征 - 基于我们的棒球知识以及引发人们推特互动的因素构建的特征。例如,再见安打/全垒打通常会引发互动。其他特征包括无安打比赛、球员的胜利概率增加值(WPA,用于判断他们是否打了一场好比赛或参与了“高杠杆”时刻)、全垒打竞赛排名、球员是否被驱逐、防御率(ERA)及其排名等。
最重要的特征
以下是我们最重要的部分特征:
- numberOfFollowers - 球员推特关注者数量的最新值。
- numberOfFollower_delta - 最近两个月之间推特关注者的变化量。
- monthday - 表示当前月份和日期的整数值,例如6月4日的值为
604。
- {target}_p_var - 球员 {target} 的历史方差。
- {target}_p_gameday_mean - 球员在比赛日 {target} 的历史均值。
- roll12_{target}_p_mean - 球员过去12个月 {target} 的均值。
- roll12_{target}_p_var - 球员过去12个月 {target} 的方差。
- wpa_daily_max - 联盟每日最大胜利概率增加值。这是为每位球员计算的近似WPA值(由于无法获取精确的垒包-出局状态,计算为近似值)。
- homeRuns_rank - 球员的全垒打排名。
- walk_off_league - 当天联盟中是否有再见安打?
- days_since_last_start - 球员上次投球以来的天数。这有助于模型学习球员是否可能在衡量互动的那天投球。