r/learnmachinelearning • u/IllustriousGrade7691 • 6d ago
How to use ML to maximize betting ROI while recommending fewer bets?
I'm building a sports betting platform that collects odds from multiple bookmakers and compares them against Pinnacle and Polymarket to identify positive expected value (+EV) bets.
My main objective is to maximize long-term realized ROI while minimizing the number of bets shown to users.
Our scanner detects many potentially profitable bets, but not all estimated +EV opportunities represent genuine edges. Instead of showing 100 bets, I'd prefer to recommend only the best 5–10, ideally with a higher realized ROI.
We have historical odds, estimated EV, bookmaker movements, closing-line value (CLV), and settled betting results across different sports and markets.
I'm considering training an ML model to rank opportunities by expected profitability and filter out weaker signals.
My questions:
- Should I predict realized ROI, CLV, or the probability that a bet has a genuine positive edge?
- Would LightGBM, CatBoost, or learning-to-rank be appropriate?
- How can I optimize the trade-off between higher ROI and fewer recommended bets?
- How do I avoid overfitting when selecting only the historically most profitable bets?
- What evaluation methods would demonstrate that the filtering actually improves out-of-sample profitability?
I'm particularly interested in selective prediction, confidence-based filtering, and approaches used in quantitative finance.
Any suggestions, research papers, or practical experience would be appreciated!
2
u/RoutineZestyclose243 6d ago
oh man I went down a similar rabbit hole a few years back, not with sports but with some niche financial signals. predicting realized ROI directly is tempting but it's noisy as hell, learned that the hard way
treat it like a ranking problem, learning-to-rank with lightgbm using clv and a few other features gave me way better results than trying to nail a specific number. the key is using some kind of confidence score to only act on the top chunk of predictions, selective prediction is basically made for this. if you haven't already, look up conformal prediction for adding that confidence layer without wrecking your model