First, you will notice that I achieved a better RMSE than ESPN! Yay! The next thing you should notice is that I barely did better. But RMSE is just a single number, so lets dive a bit deeper.

RMSE Distribution¶

Looking at the second graph you will see both distributions of RMSE. ESPN is doing a better job of getting more of their prediction errors close to zero. While my model has less area in the tail, so doesn't have as many big prediction errors as ESPN does. I also have more prediction errors in the 5-10 value range. These results can also be seen in the scatter plots. ESPN's predictions don't perform very well with very high actual fantasy point values. My model also suffers from this problem. This seems to make sense; these are most likely big games for these players with above average results that would be hard to predict with any confidence. My big win seems to be for players performing in the 5-15 point range. My model handles these better than ESPN with less low predictions in this range. Both models also have a lot of errors when players have low actual values. My model tends to over predict these, while ESPN has over and under predictions. These are probably players with bad games, so my model based on past, better performance is over shoting. ESPN probably has some better domain knowledge that can sometimes lead to over predicting a bad performance.

Feature Importance¶

I found these results to be very fascinating. You will immediately notice that next_opponent_points is very important in my model. This variable is the average fantasy points that the opponent team the player will be against in week 3 has allowed for the player's position in the previous weeks for the season. I think this is sometimes called points against and it is very important. This is something I really overlooked in my drafting. I didn't really consider a player's schedule at all. These results suggest that analyzing a player's schedule can be extremely important. A great running back could have some bad fantasy games if up against some good run defenses.

The next variable, total_points is the player's average fantasy points thus far in the season. Opponent_points is like next_opponent_points but it is the average value for that player's team for all the teams he has played thus far in the season. Next_opponent_factor is just the actual team the player will be playing in week 3. Team_factor is the player's team. Team_score is the average score for the player's team for past games. Position_factor is the player's position. Opponent_score is the same as team_score but for the player's opponents. At_home is average number of games at home. Next_at_home is whether next game is at home. Won_game is average number of games won in the past.