Class SimulatedAnealingMinimizer
java.lang.Object
org.elasticsearch.search.aggregations.pipeline.SimulatedAnealingMinimizer
public class SimulatedAnealingMinimizer
extends java.lang.Object
A cost minimizer which will fit a MovAvgModel to the data.
This optimizer uses naive simulated annealing. Random solutions in the problem space
are generated, compared against the last period of data, and the least absolute deviation
is recorded as a cost.
If the new cost is better than the old cost, the new coefficients are chosen. If the new
solution is worse, there is a temperaturedependent probability it will be randomly selected
anyway. This allows the algo to sample the problem space widely. As iterations progress,
the temperature decreases and the algorithm rejects poor solutions more regularly,
theoretically honing in on a global minimum.

Constructor Summary
Constructors Constructor Description SimulatedAnealingMinimizer()

Method Summary
Modifier and Type Method Description static MovAvgModel
minimize(MovAvgModel model, EvictingQueue<java.lang.Double> train, double[] test)
Runs the simulated annealing algorithm and produces a model with new coefficients that, theoretically fit the data better and generalizes to future forecasts without overfitting.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Details

SimulatedAnealingMinimizer
public SimulatedAnealingMinimizer()


Method Details

minimize
public static MovAvgModel minimize(MovAvgModel model, EvictingQueue<java.lang.Double> train, double[] test)Runs the simulated annealing algorithm and produces a model with new coefficients that, theoretically fit the data better and generalizes to future forecasts without overfitting. Parameters:
model
 The MovAvgModel to be optimized fortrain
 A training set provided to the model, which predictions will be generated fromtest
 A test set of data to compare the predictions against and derive a cost for the model Returns:
 A new, minimized model that (theoretically) better fits the data
