Fighting Bots with Python and Machine Learning
NIDC 2022
About me!
I really like parrots
No, I really like parrots
Apart from parrots, I really like Python and I play a lot of online games (Ballymena internet permitting)
I don't really use Twitter much so
nowhere to send hate mail :(
2020 happened.... need I say more?
Moving back with my parents, I rediscovered old games
One of them was League of Legends
Glossary
Smurf: a high ranking player who plays in lower ranked games, often for ego reasons
Elo: ranking
I made some new friends who also played
One of them noted a problem he was having
Bots, bots bots
It is very hard to even get to Iron in the first place
Why spend manual time and effort when you can just code a bot to do your dirty work?
Manual derankers exist
How to even spot a bot?
They share several characteristics
Queue only in the support role
Tend to pick champions that can sit back and heal
Since we have some common characteristics for these bots...
...that means we can categorise them using ML
First things first, getting the data
So, what do we need to collect?
Summoner name (aka player name)
Region the player is in
Champions played
Their overall winrate
Their summoner spells
Weird rune choices?
Create a CSV with the aforementioned fields....
...and now the fun part
aka: Someone who failed their Maths GCSE twice and is not very good at maths tries to understand Machine Learning
Looking at what others have done before is always a good starting point!
Basic tutorials are also a good starting point, but I don't want to categorise plants for the millionth time, I want to categorise BOTS
Looked into folks categorising things like Twitter bots...
To train the actual model, I made a CSV of actual confirmed bots
I used XGBClassifier's model, part of XGBoost to classify them
SKLearn
Pandas!
How to find them you may ask?
op.gg
So, where do we go from here?
Or more importantly, what have we learnt?
A proper frontend would be nice so more people don't have to suffer through my manky CSV Python creation
False positives are a problem, I don't want to 'shame' people for being bad at a videogame
Riot suffers from the same problem too
Is it even possible to avoid false positives?
Riot has a lot more resources at their disposal
I'm a parrot dude
Made with Slides.com