Building a NeuroShell 2 network for predicting outcomes of sporting events is really very simple, provided you can choose the proper variables and find enough historical data from past similar events. In the examples below we will be using hypothetical variables as inputs. You no doubt have more knowledge of sports or handicapping, so you will be able to choose much more appropriate variables. The intent of these examples is not to show you what inputs or outputs to use, but rather to show you how to structure your network.
Predicting Game Outcomes
In predicting the outcome of an NFL or similar sports event we want to build a network which compares two teams and decides which is the best (i.e., the most likely to win when the two play against each other). Since the network will be built to compare two teams, you will have the same variables for each team.
Let's say you use twenty input variables for NFL game predictions.
Home team, Average years of player's experience
Home team, Percentage of rookies on the team
Home team, Percentage of wins last year
Home team, Percentage of wins so far this season
Home team, Number of players currently on the injury list
Home team, Number of first round draft picks last year
Home team, Yards last game
Home team, Average yards per game
Home team, Passes last game
Home team, Average passes per game
Visiting team, Average years of player's experience
Visiting team, Percentage of rookies on the team
Visiting team, Percentage of wins last year
Visiting team, Percentage of wins so far this season
Visiting team, Number of players currently on the injury list
Visiting team, Number of first round draft picks last year
Visiting team, Yards last game
Visiting team, Average yards per game
Visiting team, Passes last game
Visiting team, Average passes per game
You will use only two outputs, one for each team. The output for the winning team is trained to 1 and for the losing team, 0. Now enter a pattern for all of the games played during the last six years, for example.
It is very important to always put the two teams in the same order (we used home/visiting team order) because the net is sensitive to the position of variables. If you don't use a particular order, you should make two patterns for each game, one in one order and the other in reverse order.
Variations on Game Prediction
Instead of just predicting the winner, you can try making the output variables be the actual score. This, however, will be much harder. You'll need good variables and lots of sample cases.
Perhaps a more effective method of making a prediction would be to predict the point spreads for both the home and visiting teams. Note that if a team loses, the point spread is 0.
Race Track Handicapping
When predicting races, the situation is very similar to NFL predictions. It is probably best to compare only two horses at a time. (See Race Handicapping Prenetwork - Overview for information on a NeuroShell 2 option that makes this comparison easy to do.)
For example, the inputs could be the following:
Outside horse, Speed index last race (-16 to 16)
Outside horse, Jockey's % of wins (0 to 100)
Outside horse, On Lasix? (0=no, 1=yes)
Outside horse, On Butazolidin (0=no, 1=yes)
Outside horse, Speed index next to last race (-16 to 16)
Outside horse, Post position (1 to 10)
Inside horse, Speed index last race (-16 to 16)
Inside horse, Jockey's % of wins (0 to 100)
Inside horse, On Lasix? (0=no, 1=yes)
Inside horse, On Butazolidin (0=no, 1=yes)
Inside horse, Speed index next to last race (-16 to 16)
Inside horse, Post position (1 to 10)
The outputs would be the following:
Outside horse finished before inside horse (0=no, 1=yes)
Inside horse finished before outside horse (0=no, 1=yes)
The order we have used is that the outside horse has the highest post position.
Make sample patterns from a couple of hundred (better yet several hundred!) previous races and you should be ready to go. Each previous race can provide 56 sample patterns if there are eight horses in the race (that's all of the pairs).
Before the big event, you will have to make several comparisons of pairs to determine the likely horses to win, place, and show. You may want to consider only comparing the favorites in pairs if you're in a hurry.
You will probably build a separate net for each track and possibly for each race distance, or each track condition. Of course, these could be variables, but we recommend multiple nets.
Handicapping Variation Number 1
We believe the comparison by pairs above is the most likely way to achieve success, because the networks are more simple. You could build a network to compare 3 or even 8 or 10 horses at a time, however. Suppose you wanted each sample case to contain a comparison of a field of 8 horses. If you had 6 variables for each horse, then there would be 48 inputs and 8 outputs. All horses would be entered by post position so you wouldn't need post position as a variable!
If you make a network as above to compare all horses in a race, it will require a large number of sample patterns to train successfully because of the net's position sensitivity mentioned earlier. You may not get success without hundreds or even thousands of previous races.
Handicapping Variation Number 2
Another possible handicapping scheme developed by some of our users is to build a network to predict the performance of a horse on its next race from variables describing its previous 2 or 3 races. Then you would compare the predicted performance factors for each horse in the coming race to pick the winner.
Suppose you wanted to predict a horse's future speed index from its current and past indexes, as well as a couple of other factors. You might use the following inputs:
Jockey's percentage of wins, next to last race (0 to 100)
Post position next to last race (1 to 10)
Speed index next to last race (-16 to 16)
Jockey's percentage of wins, last race (0 to 100)
Post position last race (1 to 10)
Speed index last race (-16 to 16)
Jockey's percentage of wins, coming race (0 to 100)
Post position coming race (1 to 10)