I took on a project to predict the outcome of soccer matches but it turned out to be a very challenging task. I tried out different models but I only got 50-54% accuracy on my test dataset. Some of the models were created in such a way that a certain model would predict if a team will win, draw, or lose a match. That same model would also predict if the opponent of that team will win, draw, or lose the match. Each model predicting with an accuracy of about 50% on each team distinctively. The second set of models I tried, takes the combination of data from both teams and predicts which class the match belongs to (home win, away win, draw). In the system, only 10 matches are given everyday to be predicted. Meaning, if I predict the 10 matches using the second model, I have a chance of predicting 5 correctly. In this project, I only need to predict 3 matches correctly out of the 10 matches given in a day. Is there a system of knowing the 3 matches which my models have the best chance of predicting correctly? I only need to get 3 correct predictions, I usually get 5 correctly but I don't know how to select my 3 best matches.
Note: The first type of models uses about 50 features for prediction while the second uses 101. I've tried ensembles, they still give me ~50% accuracy. I'm still about to set up a system that selects matches where the prediction for the home team does not contradict the prediction for the away team using the first type of models.