I have a question about predicting the outcome of 'live' events - I.E. and event which has begun but not yet finished.

Say your goal is to predict whether or not a particular player will win a series of chess matches. You have as training data three tables:

  1. A bunch of contextual data about the opponents; their world ranking, their age, nationality...you catch the drift.
  2. A table of past matches the player played including their opponent, whether he won and so on.
  3. A table detailing every single move made in the matches contained within table 2

The aim is to predict the outcome of matches which will end in the future but which have already begun.

Intuitively particular aspects of the ongoing match would be very useful as predictors. For example; whether or not our player's queen has been taken is likely a useful predictor about the outcome of that match (assuming he's an amateur), as might be the number of pawns lost, or number of checks that he suffered. The problem is that I am concerned that including features about the match in training data will cause the model to heavily favour those features in making the predictions, lowering the quality of predictions made for matches which are in their early stages. For example if the model learns that the feature "PlayerLostQueen = 1" is likely to lead to the outcome "Player Loses" then when predicting an outcome for matches which have only just begun it may be more inclined to predict a win, since the player has not yet lost his queen.

So my questions are:

  1. Is my instinct that including such features will lead to the model overfitting to the end of a match correct
  2. If so, how can such an effect be avoided?

A possible solution might be to train the model not on a dataset of observations which have the context of a match but on a dataset of 'points within a match'. For example, a match lasting 20 minutes might have 4 separate observations; 5 mins played, 10 mins played, 15 mins played and 20 mins played. If our player lost his queen in the 17th minute (and subsequently lost the match), the model still has two observations where the feature "PlayerLostQueen" is equal to 0 and thus can hopefully learn that when the time elapsed is low, that feature having the value 0 is less informative (though ofc if it were 1 in the early stages that is itself likely to be a pretty good predictor!)

  • $\begingroup$ You can add those predictors! If you are concerned about their effect being different in different stages, add the stage of the game itself as another predictor (in case of linear models, as an interaction term) $\endgroup$ – David Mar 7 '19 at 8:02
  • $\begingroup$ @asdf yeah this is the route I'm starting to go down; with different observations for each stage in the game $\endgroup$ – Dan Scally Mar 7 '19 at 8:08

Your Answer

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

Browse other questions tagged or ask your own question.