AdaptiveInterpolator by Jeff Gaston
AdaptiveInterpolater was created to predict the value of a function based on example data. It's essentially an R tree that predicts each value to be the average of the points in its box.
Interesting attributes of AdaptiveInterpolator:
- It adjusts how far to split a node based on how good the predictions are.
-
When predictions are good, then noise is small, and there are more splits and better predictions.
-
When predictions are bad, then noise is large, and there are fewer splits so we can better estimate the noise.
- It evaluates dimension values lazily
-
This can help when computing the value of a specific dimension is expensive.
-
AdaptiveInterpolator can handle thousands of dimensions and tens of thousands of datapoints on a phone in under a second
- Each split is a vote of several dimensions
- This can help when individual dimensions are independently noisy.