Quant Library · The machine layer · Any
Hedge Expert Mixture
Combine forecasters online, with a bound on how far behind the best one you can end up.
Exponential weights over any set of probabilistic forecasters, with the regret bound that makes the weights worth trusting.
Inputs
4What it takes
| Name | Type | Units | Where it comes from |
|---|---|---|---|
| experts | list of names | - | your forecasters: a model, a market, a base rate |
| forecasts | dict per match of expert -> probabilities | probability | - |
| results | list | - | what happened |
| eta optional | float | - | learning rate; 0.5 is the platform's |
Outputs
3What it gives back
| Name | Type | Units | Notes |
|---|---|---|---|
| weights | dict | - | |
| mixture | probabilities per match | probability | |
| regret_bound | float | nats |
Method
How it works
- Start uniform. After each result multiply every expert's weight by exp(−η ℓ), where ℓ is its log loss on that result, then renormalise.
- 2 further steps in the licensed specification
Assumptions
- Losses are bounded, which log loss is not unless probabilities are clipped. The implementation clips at 1e-9 and says so.
Limits
- It converges on the best single expert, and cannot beat it by much. If one of your experts is a closing line, expect the mixture to become that line.
- 1 further limits in the licensed specification
In the package
- The full specification: inputs, method, assumptions and limits
- The validation panel as measured on the day of purchase
- A reference implementation extracted from the running source
- Perpetual commercial use for one entity
Reference modules:
- 1 module(s), named in the licensed specification and shipped in the package
Read this before you buy. The platform's own walk-forward tests say the closing line forecasts football better than these models do. What they give you is a coherent price for every market and match, before the market opens, with the band and the working attached. Any model here that has been beaten by something simpler says so in its limits, and the validation panel above is generated from the platform's result files rather than typed in.