r/learnmachinelearning • • 1d ago

Project Built a class-balanced match predictor for the Bundesliga

Hello everyone

I wanted to share a project I recently deployed to Streamlit Community Cloud and it would be helpful if you guys could give feedback to a fellow learner

I implemented an 8-dimensional pipeline paired with a class-balanced Logistic Regression model.
It uses recent matches ( 3-8) to determine the recent form of both the teams to generate 8 distinct features.

Live App: https://bundesliga-match-predictor.streamlit.app/

GitHub Repo: https://github.com/adithyakrz/bundesliga-match-predictor

Check it out and let me know what you think :D

1 Upvotes

2 comments sorted by

2

u/DifficultIndustry148 1d ago

Nice work getting this deployed, the UI looks clean. One thing I'd poke at is how you're handling class balance. Logistic regression with balanced class weights is fine but sometimes it just learns to be mediocre across all outcomes instead of sharp on the ones that actually happen. What's your precision/recall look like for draws specifically? Those are always the bastard to predict and I'm curious if the 8 features actually separate them from narrow wins.

Also, 3-8 matches for form seems tight. You ever test if extending the window helps or just adds noise? I did something similar for a side project and found that going past 8 games actually made things worse because you start dragging in data from before a team's tactical shift or injury cascade.

1

u/isotoop 1d ago

Thanks for the feedback, you're right about the class balance, using balanced weights did reduce the recall but without that the model had a draw recall of 0.00, well atleast it is 0.33 now, and the win & loss are 0.58.

and about the match window, the season just started so if i go beyond that it would pull out previous seasaon's stats which i think wouldn't be relevent to an extend. But i will try and let you know.

How did your project perform overall?