I am pleased to announce the first version of Combine: a personalized beatmap recommendation system.
Combine trains a unique model for each user by analyzing their replays to make personalized recommendations. This is different from Tillerino which does clustering on the user's top 10 PP scores and does not look at beatmap data at all.
For full usage instructions, see: https://github.com/llllllllll/combine.
In order to make suggestions, users will need to upload their replays to http://combine.jevnik.moe. This works by training a neural network regressor to predict the user's accuracy given a beatmap. I suggest using around 182 training days (6 months). Most players' performance is not stationary so only the last 6 months of replays are relevant for predicting current performance. Feel free to play with this to see if you get better or worse predictions. You don't need to do that date filtering on your end, just fill in the training days field and I will filter on the server.
This website looks absolutely terrible, I know nothing about frontend development. Please PM me if you are interested in helping with the frontend or any part of this project.
To build this, I wrote a Python library for manipulating osu! files and working with the osu! API available under the LGPLv3: https://github.com/llllllllll/slider. This library includes the implementation of the model itself.
Currently I am hosting this on my personal AWS account on an m3.medium, this machine is not that powerful, please don't spam me.
Combine trains a unique model for each user by analyzing their replays to make personalized recommendations. This is different from Tillerino which does clustering on the user's top 10 PP scores and does not look at beatmap data at all.
For full usage instructions, see: https://github.com/llllllllll/combine.
In order to make suggestions, users will need to upload their replays to http://combine.jevnik.moe. This works by training a neural network regressor to predict the user's accuracy given a beatmap. I suggest using around 182 training days (6 months). Most players' performance is not stationary so only the last 6 months of replays are relevant for predicting current performance. Feel free to play with this to see if you get better or worse predictions. You don't need to do that date filtering on your end, just fill in the training days field and I will filter on the server.
This website looks absolutely terrible, I know nothing about frontend development. Please PM me if you are interested in helping with the frontend or any part of this project.
To build this, I wrote a Python library for manipulating osu! files and working with the osu! API available under the LGPLv3: https://github.com/llllllllll/slider. This library includes the implementation of the model itself.
Currently I am hosting this on my personal AWS account on an m3.medium, this machine is not that powerful, please don't spam me.