alan-turing-institute / AIrsenal

Machine learning Fantasy Premier League team
MIT License
290 stars 86 forks source link

Specify a player to build a team around? #418

Open mildfuzz opened 3 years ago

mildfuzz commented 3 years ago

My specific use case is that I believe adding Ronaldo next game week is the best play, and I believe that, from how I understand the algorithm to work, the system is incapable of making that call because there is no premier league data supporting that.

Can we then give the system a nudge and insist on certain players in certain weeks?

Or...am I mistaken? and we are importing data from foreign leagues and the system has just decided it's best to leave him out? Do we have a process for assessing foreign imports?

nbarlowATI commented 3 years ago

Hi @mildfuzz , you're not mistaken - the system as it is now doesn't know anything about players like Ronaldo... (Just saw he's been priced at 12.5M - wow!!)

There are actually a couple of separate-but-related issues:

mildfuzz commented 3 years ago

If I could find time, would certainly have a bash. Python not my strongest suit though.

Could another way to manage this be to somehow overestimate new signings?

jack89roberts commented 3 years ago

I can imagine a few different versions of this:

These would all be interesting for a human-in-the-loop version of AIrsenal and would be fun to play with I think. Like Nick says they should all be possible, but probably would take a decent amount of time/thought to incorporate them and get it working.

The issue with AIrsenal not having good predictions for new players would need more data and an improved model to fix. Definitely on the list of things we'd like to do though and contributions/ideas welcome!

Tdarnell commented 3 years ago

I can imagine a few different versions of this:

  • I want to transfer in player(s) X, Y, Z (e.g. Ronaldo), who should I transfer out? (I think this is what you're currently hoping for?)
  • I want to transfer out player(s) X, Y, Z. Who should I transfer in?
  • I want to create a new (wildcard, free hit...) squad that has player(s) X, Y, Z in it, and doesn't have player(s) A, B, C in it.
  • I do/don't want player(s) X, Y, Z in my squad in gameweek N.

These would all be interesting for a human-in-the-loop version of AIrsenal and would be fun to play with I think. Like Nick says they should all be possible, but probably would take a decent amount of time/thought to incorporate them and get it working.

The issue with AIrsenal not having good predictions for new players would need more data and an improved model to fix. Definitely on the list of things we'd like to do though and contributions/ideas welcome!

How about using the understat scraper to acquire data for all different leagues? This can also give an idea for not only players xG but also their typical position on the pitch: https://github.com/douglasbc/scraping-understat-dataset