0
$\begingroup$

I have data from around 1000 football matches and I want to apply machine learning algorithms and see which one has better accuracy and how I can improve it.

Certain statistics have been gathered from each football match since 2010 and my data set looks like in the picture attached below. Some features are: Home Yellow Cards,Away Yellow Cards,Home Attempts on target,Away attempts on target etc.

I want to output the column "TW" which stands for Team Won. It can have the value Draw,Home or Away (I know I have to remove chars and strings from the data features and replace them with numbers but that's not the problem for now). Therefore, this a multi-class classification problem.

But the real question here is if I want to predict a football match which is happening for example in 5 days from now, how can I input all those features before the match which are unknown? In particular, let's say team X is playing against team Y and I want to output the label "TW". I cannot know how many passes team X is going to complete or how many yellow cards they are going to have. I would still need to input all those features shown in the picture's sample right? Or there is any specific ML technique that will allow me to input just "HT" and "AT" meaning Home Team and Away Team respectively and give me the prediction of "TW" for this??

Is this case what is called "multi-output classification"?

I'm fairly new in Machine Learning and I hope this makes sense and my question is clear. Any help would be much appreciated!

Thanks in advance.

enter image description here

$\endgroup$
1
$\begingroup$

But the real question here is if I want to predict a football match which is happening for example in 5 days from now, how can I input all those features before the match which are unknown?

That's not a statistics/machine learning problem but rather a philosophy problem.

Your predictors are such that they can only be known at a time where the outcome can also be known.

You could still divide your records into a training and a test-set and see how well it predicts the outcome. But as you have noticed, you cannot use this to predict actual future matches where you wouldn't know your "inputs".

Or there is any specific ML technique that will allow me to input just "HT" and "AT" meaning Home Team and Away Team respectively and give me the prediction of "TW" for this??

Theoretically all of them, practically none of them. If you recognize that your input columns are really output columns, you have a multi-output problem. But you also have a zero input problem.

HT and AT will not contain any useful information to predict who wins. The computer doesn't know that "Bayern" will win against "Our little neighborhood football club" in the way that humans would know. For the computer those names don't carry the same connotations. You need to tell the computer explicitly by including other predictor columns like team budget, league, historic success rates etc.

That will give the computer information with which it can find out that Champions League teams have always won against amateurs with no budget. These new variables are also known before the match takes place, allowing you to do meaningful predictions.

  • If you then want to predict win/draw/loss it is a multi-class problem
  • If you also want to predict other outcomes (those columns you have right now) it's a multi-output problem as well
$\endgroup$
  • $\begingroup$ Thank you very much for your help. It makes more sense now for me. So one possible solution to this would be just to take some insights from this data which could be "facts" and use them as features for the future matches predictions right? Statistics that I will be capable of knowing before a match happens. $\endgroup$ – Anestis S. Oct 28 '17 at 10:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.