我正在尝试预测fantasy_points即将到来的比赛中的个别篮球运动员。计算球员的公式fantasy_points是:
fantasy_points = (1 * points_scored) + (1.5 * assists)
因此,如果球员 A 得到 10 分和 4 次助攻:
玩家 A fantasy_points= (1 x 10) + (1.5 x 4) = 16
我有几个赛季的球员数据。我的数据被组织成一行代表玩家在一场比赛中的表现。这包括赛前已知的解释变量(球员年龄、过去的表现变量、对手实力)和目标变量points_scored和。assistsfantasy_points
| player | explanatory variables | points_scored | assists | fantasy_points |
|--------|-----------------------|---------------|--------------|---------------------:|
| A | ... | 10 | 4 | 16 |
| B | ... | 3 | 10 | 18 |
| C | ... | <to predict> | <to predict> | <to predict> |
使用 Scikit-Learn 的ElasticNet回归器以及GridSearchCV寻找最佳惩罚,我试图预测玩家在即将到来的游戏中将拥有多少幻想点。
我尝试了两种方法(未显示培训/简历):
两种模型方法:我训练了两个单独的模型:
一个
points_scored_model训练有素points_scored的目标一个
assists_model训练有素assists的目标
为了弄清楚fantasy_points即将到来的游戏中有多少玩家,我结合了这样的预测:
predicted_points_scored = points_scored_model.predict(row_for_player_c)
predicted_assists = assists_model.predict(row_for_player_c)
predicted_fantasy_points = \
(1 * predicted_points_scored) + (1.5 * predicted_assists)
一种模型方法:我训练了一个模型:
fantasy_points_model训练有素fantasy_points的目标
然后我预测了这样的幻想点:
predicted_fantasy_points = fantasy_points_model.predict(row_for_player_c)
因为基础公式(1*points + 1.5*assists)被合并到Two Model Approach中,我想它能够比One Model Approachfantasy_points更准确地预测。
我使用 R^2 分数来比较模型,结果发现One Model Approach比Two Model Approach表现更好 。
似乎单一模型方法关于该问题的信息较少,那么它如何才能获得更好的分数呢?此外,有没有办法利用幻想点公式来获得更好的预测?