I am working on a project to predict football matches using bookmakers' odds. The 6 columns I have are Home Team, Away Team, Home Win Odds, Draw Odds, Away Win Odds, Outcome.
The possible football match outcomes are Away Team Win (A), Draw (D) and Home Team Win (H). I have been using label encoders to represent the variables (0, 1, 2 respectively) but it occurred to me that the outcomes may not be ordinal (since there is no order/rank/preferences to it).
Questions
- In this case, should I continue with label encoders or should I use one hot encoding? Or it depends on the model used (like Tree based or linear etc)?
- If I should change to one hot encoding, how should I ensure that my prediction vector outputs two 0s and one 1 (since it has to be either A, D or H) because sometimes it gave me a vector of three 0s?
- I have used one hot encoding for the football teams (20 teams each for both Home and Away). Since a team must play against a unique team, there exists one 1 and nineteen 0s in the first 20 columns and one 1 and nineteen 0s in the next 20 columns. Does this relationship/restriction across the columns affect the models in any way?
- Should I apply dimensionality reduction techniques like PCA to it since I now have 20+20+3=43 features as compared to the 5 features previously? I have read that if a tree model is built, the 3 numeric features (bookies' odds) will be rarely used. Or can I just increase the max_features for RandomForestClassifier?
Thanks in advance!