Raiform – version 2.0

After some unsuccesfull festival betting lets look at some ratings.

I have been in a process of converting my neural network workflow from ai4r to FANN, or Fast Artificial Neural Network and one of the larger tasks was to redo my raiform rating. I originally built that earlier this year and wrote a bit about it in March.

Anyways, here is first glance at the results. Data is from period of 2013 and 2014 and it includes same ratio of different codes as did the training and test datasets. This is now unseen data which was not used for teaching purposes nor for testing. All in all there are some 5000 races and almost 50.000 runs included.

In the chart rating goes up till 500 but theoretical limit is 1000, there were some figures in the 600 range but I dropped from the chart all the occurances where sample size was less than 10, that is the reason why strikerate lines end at different positions for different codes. All in all pretty consistently rising strikerates as rating climbs higher. Highest variance is in Hunter chases but there sample sizes are so small that I wouldn’t worry about it at this time.

This rating is now only thing that I look at when it comes to past few races. It is easier to say that Horse A with a Raiform of 400 is more likely winner than Horse B with rating of 250 rather than Horse A with last three 321 is better than Horse B with 332. I made up those form lines, but I believe point is clear.

Suitability Score

For a while now I have been planning to add a new kind of rating to my bayesian system. Something that I have now named suitability score.

Previously I have calculated strike rate for class, course and distance. Similarly to what is presented in the Instant Expert portion of the race cards at Geegeez. But I have had a feeling that it is a bit harsh and haven’t added  it as one of the factors calculated into my odds.

After reading Peter Mays forecasting book I realized that I wanted to create something to measure if run was successfull regardless if the horse won or not. From May’s book I ripped the concept of distance beaten in pounds (and conversion from lengths lost to pounds).

I looked through the races ran in 2013 and decided on a bit different parameters on what to consider a good run and what constitutes a bad run. I ended up with values where roughly 40% of runs are deemed good, 50% ok and 10% bad.

While figuring that out I was also bouncing out ideas on how to use these as a factor in my system. First and easiest would be to just calculate strikerates but I wasn’t happy with that when I effectively had three possbile outcomes for a race, good, ok and bad. In the end as a first version I decided steal a concept of Net Promoter Score, or NPS.

I will calculate suitability score as follows:

((Good runs / All runs) – (Bad runs / All runs)) * 100

This gives me a score between -100 and 100.

Once I have calculated bunch of these and done some analysis I will post a followup.