Rob Claessens - Predicting the Spring Classics of cycling with my first neural network

Learn how cycling enthusiast Rob Claessens built a neural network to predict Spring Classics race rankings, optimize team selection, and compete against expert predictions.

Key takeaways
  • Built a neural network to predict cycling race rankings and optimize team selection for fantasy cycling game Scarito

  • Model used 16 input features including rider characteristics (age, weight, skills) and race characteristics (distance, vertical meters, difficulty) to predict continuous rank values

  • Form (recent race results) was found to be the most influential predictor, followed by vertical meters and hills skill rating

  • Initial model showed too much dependence on age (H) parameter, which was corrected through data augmentation and fine-tuning

  • Used SHAP values to analyze feature importance and interactions between different predictors

  • Benchmarked predictions against Cycling Oracle platform - fine-tuned model performed better than initial version but still trailed expert predictions by ~5%

  • Automated workflow using PyTorch datasets with ~2200 historical samples from 120 riders over 5 years of races

  • Model validation using rank correlation coefficient rather than R² due to ordinal nature of predictions

  • Tested model in real competition by running parallel accounts - one with human captain selection, one with AI predictions

  • Opportunities identified for improvement including better form modeling, feature engineering, and exploring alternative architectures like random forests