I want to design a neural network that can be used for predicting sports scores for betting, specifically for American football. What I’d like to do is create a kind of profile for each game based on the specific strengths and weaknesses of each team.

For example, let’s say two teams have the following characteristics:

Team A:

  • Passing Offense Rating: 5
  • Rushing Offense Rating: 2

Team B:

  • Passing Defense Rating: 3
  • Rushing Defense Rating: 4

I’d like to be able to search for historical games where two teams have similar profiles. I could perhaps then narrow it down to games with profiles that have statistically significant historical outcomes (i.e., certain types of matchups are likely to result in similar results).

In reality, I’d have dozens of team characteristics to compare. I would then need to assign weights of importance to each characteristic, which could be used to further ensure the effective selection of similar games.

I think I could do this like a convolutional neural network where there is an additional filter applied to the characteristics for the weights.

Are there any other ways that are specifically applicable to this strategy?


1 Answer 1


This is probably not going to work well as a way to make money. People with far larger budgets, and far more training, are already milking out any money to be made this way. This is probably their day job, and they are good at it.

That said, here are some ideas:

  1. You do not need or want to use a convolutional network for this. Convolutional networks are useful when you want to detect a pattern invariant to translation in complex inputs. The only translation you have is that the teams could appear in either order. Just input them in both possible orders if this is a concern.
  2. You want to find similar games. You do not need or (generally) want to use a neural network to do this. As a starting point, normalize the features and compute the nearest neighbors of an input point directly. Algorithms for doing this are fast and will return all similar points. You can even (with small modifications) output the degree of similarity as a numeric value.
  3. If you want to predict who will win, you will probably have much better luck doing that directly. Build a feed-forward neural network that predicts which team won from the features you gathered. This is a routine classification task, and the resulting model will probably work better than finding similar games and then trying to manually determine what to do.
  4. If you care about scores instead of just who won, use a feed forward network for regression instead of classification. The task is almost identical.
  • 1
    $\begingroup$ A CNN is probably the incorrect term since the filter is an entire game and the data being filtered is all games in the training set, but it’s easier to visualize that way. Creating an arbitrary methodology to determine whether a past game is sufficiently similar isn’t hard - the crux here is finding the correct weights for each team category. I know that I could use a feedforward network to estimate scores, but I like the idea of finding some number of similar games and looking at summary statistics. $\endgroup$ Oct 24, 2019 at 1:14
  • 1
    $\begingroup$ @SuperCodeBrah It sounds to me like you want to do regression with a feed-forward network. $\endgroup$ Oct 24, 2019 at 1:19
  • $\begingroup$ If that could work, then sure, but it seems hard to get a grasp of any nonlinearity that exists in the universe of potential matchups, so I’m trying to turn it into more of a categorization problem. You correctly surmised that I’m new to this. What I’m saying is that I don’t have a good sense of how exactly a feedforward network should be structured for this type of potentially nonlinear problem. I could come up with something really messy for a nearest neighbor type of solution, but I’m wondering if there’s an existing methodology that’s cleaner. $\endgroup$ Oct 24, 2019 at 1:25
  • $\begingroup$ @SuperCodeBrah I'm not completely sure I've understood what you want, but it sounds like maybe you are after something like dimensionality reduction? That is, you'd like to come up with weightings of the features that allow you to make simple comparisons of games in a principled way. Maybe you want PCA? en.wikipedia.org/wiki/Principal_component_analysis $\endgroup$ Oct 24, 2019 at 1:32
  • 1
    $\begingroup$ @SuperCodeBrah You are mistaken about PCA: it produces a weighting for each input, such that a linear combination of weighted inputs yields a good approximation of the "shape" of the original dataset. I'll also recommend against trying to interpret the weights in the first layer of a NN as statistically meaningful. It really sounds like you want logistic or linear regression if that's your goal. Good luck! $\endgroup$ Oct 24, 2019 at 13:28

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .