I want to implement a project to find (predict) points scored by each player for the coming gameweek. I am targeting Fantasy Premier League(FPL) for this. What I exactly want to do is using previous data based on some features the model should predict the total points to be scored by a player. Example : Consider a player - Lukaku. Suppose for Lukaku, I have data for 28 game weeks and I want to find out how many points would Lukaku score for 29th game week(consider factors like goals scored, assists, minutes played, etc).

I had thought about implementing Linear Regression for which I can train the model for 28 game weeks but then I dont know how or what should be my input for the 29th week so as to predict points for that week. Also, which algorithm should be implemented?

Features :- Goals,assists,minutes, yellow cards, red cards, clean sheets, etc

  • $\begingroup$ This question is very broad, and I believe you would profit from reading an introductory level textbook. We have a helpful list of free statistical textbooks. If afterwards you still have more specific questions, then please do ask them here. If you already have read such a textbook, please edit your question to make it more specific. Thank you! $\endgroup$ – Sycorax Jul 29 '18 at 20:13

This is surely possible. I have been doing this for 3 complete seasons now :)

First, your records shall be the current seasons' Player-GW records which are collected by visiting the FPL summary page of each player, (for instance, Harry Kane's FPL summary page is: https://fantasy.premierleague.com/drf/element-summary/372, which is a JSON object. Under the JSON array named "history", you will find the Player-GW records for this player). By the end of this step, you will have your training data.

Now each records has got lots of attributes/features as seen in the JSON object of a Player-GW record. It is up to you which features to include, and which to exclude. You may also want to create some historical features, like the player's total points in past 5 matches..etc). Also note that not all features of GW should be included to determine the player's total point in this GW. For instance, Threat, Creativity, ICT index, and a couple of other features are only populated after the game. This means you cannot train based on these as you will not have them when trying to predict the player's score for the next GW.

As to the output - which is what you are trying to predict - does it have to be the very next GW? I mean, if a player is in good form, based on his previous GWs performance, it is still very hard to predict his score for only the next GW, since different GW and different matches have their own conditions/circumstances. But it is easier and more logical to predict a player's combined score for the next - let's say - 3 games. That makes it more logical and increases the prediction accuracy.

Now as to which regression algorithms to use, well there are a plethora of them. You have to try different ones and measure the accuracy of each.

Which brings me to the last point, accuracy. How do you measure the accuracy of a model? Maybe RMSE, maybe correlation, maybe other custom created functions (like I do). Remember, the model scoring function should reflect in a way how you are going to use the mode. I mean, why use RMSE for all players? After all what you'll probably end up doing is to select the let's say 20 highest scoring players in your model and try to buy some of them. Then your model scoring function should only evaluate the top 20 predicted players, not all 500-600 players in the Permier League.

In short, you will need to try and make some runs to be able to determine: - what is your feature set? - what should be the output? - what regression algorithm you will use? - what model scoring function you will use to select the best regression algorithm and to fine tune its parameters?

Good luck :)

| cite | improve this answer | |
  • $\begingroup$ Hey! I have been using the data from the PL API already, but my real question is "How do I use present data to predict the future?" also, I am thinking of using Neural Nets for the problem. $\endgroup$ – SUIIIII Feb 6 '19 at 1:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.