java.lang.Object
org.elasticsearch.search.aggregations.pipeline.MovAvgModel
All Implemented Interfaces:
NamedWriteable, Writeable, ToXContent, ToXContentFragment
Direct Known Subclasses:
EwmaModel, HoltLinearModel, HoltWintersModel, LinearModel, SimpleModel

public abstract class MovAvgModel extends Object implements NamedWriteable, ToXContentFragment
  • Constructor Details

    • MovAvgModel

      public MovAvgModel()
  • Method Details

    • minimizeByDefault

      public boolean minimizeByDefault()
      Should this model be fit to the data via a cost minimizing algorithm by default?
    • canBeMinimized

      public abstract boolean canBeMinimized()
      Returns if the model can be cost minimized. Not all models have parameters which can be tuned / optimized.
    • neighboringModel

      public abstract MovAvgModel neighboringModel()
      Generates a "neighboring" model, where one of the tunable parameters has been randomly mutated within the allowed range. Used for minimization
    • hasValue

      public boolean hasValue(int valuesAvailable)
      Checks to see this model can produce a new value, without actually running the algo. This can be used for models that have certain preconditions that need to be met in order to short-circuit execution
      Parameters:
      valuesAvailable - Number of values in the current window of values
      Returns:
      Returns `true` if calling next() will produce a value, `false` otherwise
    • next

      public abstract double next(Collection<Double> values)
      Returns the next value in the series, according to the underlying smoothing model
      Parameters:
      values - Collection of numerics to movingAvg, usually windowed
      Returns:
      Returns a double, since most smoothing methods operate on floating points
    • predict

      public double[] predict(Collection<Double> values, int numPredictions)
      Predicts the next `n` values in the series.
      Parameters:
      values - Collection of numerics to movingAvg, usually windowed
      numPredictions - Number of newly generated predictions to return
      Returns:
      Returns an array of doubles, since most smoothing methods operate on floating points
    • doPredict

      protected abstract double[] doPredict(Collection<Double> values, int numPredictions)
      Calls to the model-specific implementation which actually generates the predictions
      Parameters:
      values - Collection of numerics to movingAvg, usually windowed
      numPredictions - Number of newly generated predictions to return
      Returns:
      Returns an array of doubles, since most smoothing methods operate on floating points
    • validate

      protected void validate(long window, String aggregationName)
      This method allows models to validate the window size if required
    • emptyPredictions

      protected double[] emptyPredictions(int numPredictions)
      Returns an empty set of predictions, filled with NaNs
      Parameters:
      numPredictions - Number of empty predictions to generate
    • writeTo

      public abstract void writeTo(StreamOutput out) throws IOException
      Write the model to the output stream
      Specified by:
      writeTo in interface Writeable
      Parameters:
      out - Output stream
      Throws:
      IOException
    • clone

      public abstract MovAvgModel clone()
      Clone the model, returning an exact copy
      Overrides:
      clone in class Object
    • hashCode

      public abstract int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public abstract boolean equals(Object obj)
      Overrides:
      equals in class Object