Feature selection for sports prediction I worked through couple of projects on Kaggle to pick up machine learning. Now I am looking to implement a basic tennis prediction algorithm. I have a very beginner question. 
Let's say, for each match, I collect 5 features for player A, 5 features for player B. My very basic understanding of machine learning tells me that from the perspective of a machine, these features are not players specific. In other words, there are simply 10 features. Is this correct? In this case, is it generally better to substitute these 10 features with differences between corresponding pairs of features, resulting in 5 features.   
 A: From the question I presume you mean that you take the same features from both player A and B - such as percentage of games previously won. Let's refer to each of these features as $X_1$ through to $X_k$. Usually we represent this in a matrix format such as,
\begin{array} {|r|r|r|r|r|}
\hline
Player & X_1 & X_2 & \dots & X_k \\
\hline
A &4 &3 &\dots & 6\\
\hline
B &6 &9 & \dots &1 \\
\hline
\end{array}
I just added arbitrary values in the table above. We usually say the number of features is $k$ and the number of players is $n$ which is 2 in this case. Finding the difference between pairs of features will still leave us with $k$ features.
The point which you seem to be making is that in the case of two players, if we use a machine learning tachnique which only uses the difference between features to make estimates then we may be wasteful in storing this $n\times k$ matrix. However this idea does not scale well. For example imagine we have 1000 players we would have to store the difference between the first player and all 999 other players, the second player and all 998 other players and so on. In general this would require $\frac{n(n-1)}{2}k$ values to be stored as opposed to $nk$.
While this is indeed required in some machine learning techniques, where covariance matrices are required, generally it is not and may be wasteful.
