BlazeOrange.ninja

NFL Predictor Algorithm (Part 2)

Well I threw in a recency bias and it's helped a good bit. On your end, change your code so that instead of adding each game once, it adds each game week/2 times, rounded up. So on weeks 1 and 2, it gets added once, week 3 and 4, it gets added twice, all the way to week 11 so far where the game gets added 6 times. That has increased the success rate by 11.8%! It's also made the score more spread out as opposed to one leader at the top and then a long tail.

Another change I added that added another game is a minimum score. If a team wins a game (even if it's the Lions), it's worth a minimum of 1 point. Tying is worth a minimum of 1/2 point. You can adjust that value if you wish but it did have an negative effect if this number exceeded the score of the penultimate (second to last, we all learned something today) team.

This did add a wrinkle in there because now some of my results now have ties as well! They appear to occur with teams not in the same division that have a shared opponent. For example, the Dallas Cowboys are tied with the Tampa Bay Buccaneers. They are in different divisions but have both played the New York Giants. They need not have the same outcome for this to occur either. The Vikings, 49ers, and Steelers are all tied due to playing the Detroit Lions. The Vikings and 49ers beat the Lions but the Steelers tied them. And the worst part is, Vikings and 49ers play at 4:25 pm EST today!

The updated results (keep in mind this will vary a good bit week to week due to the bias) are below. I've highlighted the ties and added the shared opponent.

  1. Tennessee Titans: 100.000
  2. Kansas City Chiefs: 99.914
  3. New England Patriots: 95.789
  4. Arizona Cardinals: 87.194
  5. Dallas Cowboys: 82.725 (New York Giants)
  6. Tampa Bay Buccaneers: 82.725 (New York Giants)
  7. Green Bay Packers: 79.931
  8. Indianapolis Colts: 78.599
  9. Los Angeles Chargers: 77.997
    1. Baltimore Ravens: 69.489
    2. Buffalo Bills: 68.543
    3. Pittsburgh Steelers: 63.816 (Detroit Lions)
    4. Minnesota Vikings: 63.816 (Detroit Lions)
    5. San Francisco 49ers: 63.816 (Detroit Lions)
    6. Cincinnati Bengals: 59.089
    7. Atlanta Falcons: 54.362 (New York Giants)
    8. Washington Football Team: 54.362 (New York Giants)
    9. Cleveland Browns: 53.416
    10. Philadelphia Eagles: 52.643
    11. New Orleans Saints: 47.177
    12. Los Angeles Rams: 45.049
    13. Denver Broncos: 44.908
    14. Miami Dolphins: 44.048
    15. Carolina Panthers: 42.329
    16. New York Giants: 40.180 (Kansas City Chiefs)
    17. Las Vegas Raiders: 40.180 (Kansas City Chiefs)
    18. Jacksonville Jaguars: 25.999
    19. Houston Texans: 20.327
    20. Seattle Seahawks: 17.490
    21. New York Jets: 16.545
    22. Chicago Bears: 9.454
    23. Detroit Lions: 0.000

I've retested this against the rest of the season (excluding the tie) and results have improved:

  1. Correct 114 games, incorrect 50 games (69.512% correct) across the season
  2. Correct 7 games, incorrect 9 games (43.750% correct) in week 1
  3. Correct 11 games, incorrect 5 games (68.750% correct) in week 2
  4. Correct 11 games, incorrect 5 games (68.750% correct) in week 3
  5. Correct 11 games, incorrect 5 games (68.750% correct) in week 4
  6. Correct 12 games, incorrect 4 games (75.000% correct) in week 5
  7. Correct 10 games, incorrect 4 games (71.429% correct) in week 6
  8. Correct 10 games, incorrect 3 games (76.923% correct) in week 7
  9. Correct 9 games, incorrect 6 games (60.000% correct) in week 8
    1. Correct 11 games, incorrect 3 games (78.571% correct) in week 9
    2. Correct 9 games, incorrect 4 games (69.231% correct) in week 10
    3. Correct 13 games, incorrect 2 games (86.667% correct) in week 11

There's no use bragging about a prediction bot if we don't know if it can actually make successful future predictions. For the sake of testing and the football pool, this bot is joining it back filling from Thursday so it can join this week. So far it's 2 out 3 (its only loss by picking Dallas over Las Vegas) If it can beat the rest of us, I'm calling that a win.

I might tweak a few more things to see if I can get a few more games out of it, but without a severe overhaul of the algorithm I think this is the end of the line.

Day 78 of #100DaysToOffload

Tags: Programming Football NFL AI Math