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.