Quasi-linearity in deep learning regression problems (sports betting) I’m attempting to build a sports betting model that aims to predict final scores for games.  I’ve had some promising early results for US college football just by using linear regression to form team rankings where each team’s coefficient represents how much it would win or lose by against an average team.

With football specifically, but perhaps all major sports, I think outcomes are very dependent on individual matchups, i.e., the specific strengths and weaknesses of one team versus the strengths and weaknesses of another team as teams will try to exploit relative weaknesses of their opponents.

Here’s a hypothetical set of matchups between the offense of one football team, Team A, and the defense of another team, Team B.

Team A Offensive Ratings:
  Passing: +7
  Rushing: -3

Team B Defensive Ratings:
  Passing: -3
  Rushing: +7


What this means is that Team A’s passing offense contributes an average of 7 points more to its final score than an average team, and its rushing offense contributes 3 points less than an average team.  In total, assuming that passing and rushing are the only two ways to score, Team A scores 4 more points per game than a hypothetical average team.  This same thinking would apply to defenses (i.e., the defensive rating also measures how a team’s defense contributes to its average margin of victory or loss).  In practice, it’s not as simple as looking at the nominal statistical outputs for each team since different teams play different levels of competition, but that’s a somewhat separate topic.

With the example above, it first appears that Team A’s offense is even with Team B’s defense because both are 4 points better than average, but that’s probably an oversimplification.  Given that Team A has a relative advantage in passing and a relative disadvantage in rushing, we can expect Team A to pass more than it rushes and perhaps pass more than it usually does due to Team B’s relative weakness in pass defense and relative strength in rushing defense.  The fact that teams and coaches will be at least somewhat rational in their decision making should, in theory, lead to some degree of non-linearity in final scores based on specific strength profiles of each team.

I’m just getting started with data science and have to admit that I’m yet to code a neural network (although I’ve read a lot about them).  This is fundamentally a regression problem, but most of what I’ve seen indicates that using neural nets for (linear) regression is largely done for efficiency purposes for very large datasets, which is not the case here.

Seemingly, I can create whatever activation functions I want, even with different functions within the same layers as long as I can find their derivatives.  Generally, I think the activation functions should respect linearity regarding the net ratings difference for each stat component, but the network needs to account for any non-linearities that exist as result of interactions between stats.

I realize this is very open ended.  I could design a large number of ad hoc activation functions and see what works and what doesn’t, but I’m wondering if there’s a more generic way to approach the problem.

Any suggestions are appreciated.
There are several principles in Data Science and Statistics which you will have to know before undertaking a project of any kind.

One of them is what is called parsimony principle (you could know him with other words) but it says that if you have two models with similar results, the simpler, with less parameters model should be chosen.

As you must have read, the neural networks have A LOT of parameters which of course might allow to learn your database (not generalize your model to not-seen-before data).

My recommendation is you use linear regression if you have a linear problem.

The neural networks can represent a linear problem too: Can neural network represent a relation that is a derivative?

But, if you want to do neural networks anyway, I will have to tell you that they work by trial and error. There are rules and suggested architectures, but you will have to find the best by yourself