Class EnsembleModel<T extends Output<T>>

java.lang.Object
org.tribuo.Model<T>
org.tribuo.ensemble.EnsembleModel<T>
All Implemented Interfaces:
com.oracle.labs.mlrg.olcut.provenance.Provenancable<ModelProvenance>, Serializable, ProtoSerializable<org.tribuo.protos.core.ModelProto>
Direct Known Subclasses:
WeightedEnsembleModel

public abstract class EnsembleModel<T extends Output<T>> extends Model<T>
A model which contains a list of other Models.
See Also:
  • Field Details

    • models

      protected final List<Model<T extends Output<T>>> models
      The list of models in this ensemble.
  • Constructor Details

    • EnsembleModel

      protected EnsembleModel(String name, EnsembleModelProvenance provenance, ImmutableFeatureMap featureIDMap, ImmutableOutputInfo<T> outputIDInfo, List<Model<T>> newModels)
      Builds an EnsembleModel from the supplied model list.
      Parameters:
      name - The name of this ensemble.
      provenance - The model provenance.
      featureIDMap - The feature domain.
      outputIDInfo - The output domain.
      newModels - The ensemble members.
  • Method Details

    • getModels

      public List<Model<T>> getModels()
      Returns an unmodifiable view on the ensemble members.
      Returns:
      The ensemble members.
    • getNumModels

      public int getNumModels()
      The number of ensemble members.
      Returns:
      The ensemble size.
    • getExcuse

      public abstract Optional<Excuse<T>> getExcuse(Example<T> example)
      Description copied from class: Model
      Generates an excuse for an example.

      This attempts to explain a classification result. Generating an excuse may be quite an expensive operation.

      This excuse either contains per class information or an entry with key Model.ALL_OUTPUTS.

      The optional is empty if the model does not provide excuses.

      Specified by:
      getExcuse in class Model<T extends Output<T>>
      Parameters:
      example - The input example.
      Returns:
      An optional excuse object. The optional is empty if this model does not provide excuses.
    • getProvenance

      public EnsembleModelProvenance getProvenance()
      Specified by:
      getProvenance in interface com.oracle.labs.mlrg.olcut.provenance.Provenancable<T extends Output<T>>
      Overrides:
      getProvenance in class Model<T extends Output<T>>
    • copy

      protected Model<T> copy(String name, ModelProvenance newProvenance)
      Description copied from class: Model
      Copies a model, replacing its provenance and name with the supplied values.

      Used to provide the provenance removal functionality.

      Specified by:
      copy in class Model<T extends Output<T>>
      Parameters:
      name - The new name.
      newProvenance - The new provenance.
      Returns:
      A copy of the model.
    • copy

      protected abstract EnsembleModel<T> copy(String name, EnsembleModelProvenance newProvenance, List<Model<T>> newModels)
      Copies this ensemble model.
      Parameters:
      name - The new name.
      newProvenance - The new provenance.
      newModels - The new models.
      Returns:
      A copy of the ensemble model.
    • getTopFeatures

      public Map<String,List<com.oracle.labs.mlrg.olcut.util.Pair<String,Double>>> getTopFeatures(int n)
      Description copied from class: Model
      Gets the top n features associated with this model.

      If the model does not produce per output feature lists, it returns a map with a single element with key Model.ALL_OUTPUTS.

      If the model cannot describe it's top features then it returns Collections.emptyMap().

      Specified by:
      getTopFeatures in class Model<T extends Output<T>>
      Parameters:
      n - the number of features to return. If this value is less than 0, all features should be returned for each class, unless the model cannot score it's features.
      Returns:
      a map from string outputs to an ordered list of pairs of feature names and weights associated with that feature in the model