Show HN: DeepShot – NBA game predictor with 70% accuracy using ML and stats
github.comI built DeepShot, a machine learning model that predicts NBA games using rolling statistics, historical performance, and recent momentum — all visualized in a clean, interactive web app. Unlike simple averages or betting odds, DeepShot uses Exponentially Weighted Moving Averages (EWMA) to capture recent form and momentum, highlighting the key statistical differences between teams so you can see why the model favors one side. It’s powered by Python, XGBoost, Pandas, Scikit-learn, and NiceGUI, runs locally on any OS, and relies only on free, public data from Basketball Reference. If you’re into sports analytics, machine learning, or just curious whether an algorithm can outsmart Vegas, check it out and let me know what you think: https://github.com/saccofrancesco/deepshot
Haven’t dug the repo too much yet but looks like a super cool project. I’ have a few questions:
1. To what does 71% accuracy refers? I assume picking which team will win in any given matchup?
2. How does 70% compare to say, picking the team with the better record to win, or some simple time weighted rolling average of SRS record (metric that factors in opponent difficulty)? Because a solid percentage of games are between teams of extremely different talent levels, especially as tanking becomes more prominent later in the season.
The 71% accuracy refers to the fact that, given 2 teams, 71% of the time the team with the most percentage really won. For example tonight there was MIL vs GSW and it guessed correctly at 71% probability that MIL would have won and it happened. Or yesterday for example, where it guessed that DET won when the odds says a completly different stories. I see that in 60 / 40 matchups in terms of win probability it des a pretty good job because 60 / 40 is not a clear win and it really has guessed right since now in those type of games. When it comes to compare it to other methods, it's not that much better BUT, if combined with trend analysis, record, streak and overall player momentum you can have a boost in your predictions (not meant for betting btw, even if I'm testing it and I'm 15$ dollars starting with 10$ at the the start of the season)
Awesome thank you for the info!
Planning to build an UI around it ?
I already builded a UI around it. I show it in the README of the repo :)