When Don Emmons' neural network picked the winning horse in 17 out of 22 thoroughbred races at Detroit Race Course, he was astounded that a $195 program (BrainMaker) running on a PC could do so well. "I am amazed at the ability of software to consistently include the winning horse in three of its picks," said Don.
Designing a neural network is largely a matter of defining the problem well in your own mind. The most difficult aspects are deciding what information you're going to use and gathering it.
There are several known methods of successfully predicting horserace winners with neural networks BrainMaker Professional provides a program which automates the design of "competition" networks such a horserace predictors. The program "Compete" designs, tests and runs a network based upon comparisons of all the competing items, comparing them two at a time. The one that wins the largest number of 2-item comparisons is the overall winner. Each item is rated for its overall likelihood of winning.
Another design approach which can be used with standard BrainMaker uses the full number of competing items as input, such as ten horses. There are two difficulties with this. First, not all races have the same number of horses running. Second, There will be a lot of inputs and outputs, making it more difficult to train.
Don Emmon's design approaches the problem by looking at each horse individually and predicting how well it might do in the race. A separate neural network is trained for each horse with past performance information. Then the neural networks are given current information and the ones with the best results are selected as likely winners. When Don selected three horses as the possible winner of the race, 77% of the time one of them was the winner.
Information may be gathered from the Racing Form or from a computerized service such as the Equine Line of Jockey Club Information Systems, Inc. in Lexington, Kentucky. BrainMaker will read several different databases or a plain text file. Each horse has its own file and every past race is on a different line in the file. Don started out with four pieces of information: post position, the number of horses in the race, the horse's finish time and the track record. An input file might look like this:
post_position #horses finish_time track_record
race#1 4 8 106.10 101.05
race#2 2 8 115.34 101.05
race#3 6 7 127.22 101.05
A little work was done with the numbers before the network was trained. The finish time was divided by the track record to provide a common denominator between all horseraces. Linear regressions were done on sets of three consecutive races in order to rate the recent performance as improving, staying the same or getting worse. The final design included the post position, the number of horses, the finish time as a percent of track record, and the change in recent performance as inputs. The output was the predicted finish time of the horse's next race expressed as a percentage of track record.
post position--> | one |
number of horses--> | horse | --->predicted time
finish time--> | neural |
change in performance--> | network |
NOTES: Times are expressed as a percentage of track record.The change in performance is precalculated with a linear regression equation is used to produce a slope which describes the horse's recent performances as improving, not changing or getting worse.
While the network is being trained, the inputs (the left portion of the diagram) represent the information from a past race. The output is what the horse did at its next race. At least eight races worth of information are needed for training. The program presents the races to the network one a time, over and over, until the network learns what the horse has done in the past. Don typically let the training continue until the network output numbers which were 95% accurate. The training can be done just before the race since it takes about five minutes to complete. After the network is trained, it can be used to predict an upcoming race Information about the horse's last race is input, and the output is a prediction of what the horse will do at this (the next) race.
In order to yield the best results from this network, a race selection system was created:
An eight horse race with 3 longshots would qualify.