Class TransformedModel<T extends Output<T>>

java.lang.Object
org.tribuo.Model<T>
org.tribuo.transform.TransformedModel<T>
All Implemented Interfaces:
com.oracle.labs.mlrg.olcut.provenance.Provenancable<ModelProvenance>, Serializable, ProtoSerializable<org.tribuo.protos.core.ModelProto>

public class TransformedModel<T extends Output<T>> extends Model<T>
Wraps a Model with it's TransformerMap so all Examples are transformed appropriately before the model makes predictions.

If the densify flag is set, densifies all incoming data before transforming it.

Transformations only operate on observed values. To operate on implicit zeros then first call MutableDataset.densify() on the datasets.

See Also:
  • Method Details

    • getTransformerMap

      public TransformerMap getTransformerMap()
      Gets the transformers that this model applies to each example.

      Note if you use these transformers to modify some data, and then feed that data to this model, the data will be transformed twice and this is not what you want.

      Returns:
      The transformers.
    • getInnerModel

      public Model<T> getInnerModel()
      Gets the inner model to allow access to any class specific methods that model contains (e.g., to examine cluster centroids).

      Note that this model expects all examples to have been transformed using the transformer map, which can be extracted with getTransformerMap().

      Returns:
      The inner model.
    • getDensify

      public boolean getDensify()
      Returns true if the model densifies the feature space before applying the transformations.
      Returns:
      True if the transforms operate on the dense feature space.
    • predict

      public Prediction<T> predict(Example<T> example)
      Description copied from class: Model
      Uses the model to predict the output for a single example.

      predict does not mutate the example.

      Throws IllegalArgumentException if the example has no features or no feature overlap with the model.

      Specified by:
      predict in class Model<T extends Output<T>>
      Parameters:
      example - the example to predict.
      Returns:
      the result of the prediction.
    • predict

      public List<Prediction<T>> predict(Dataset<T> examples)
      Description copied from class: Model
      Uses the model to predict the outputs for multiple examples contained in a data set.

      Throws IllegalArgumentException if the examples have no features or no feature overlap with the model.

      Overrides:
      predict in class Model<T extends Output<T>>
      Parameters:
      examples - the data set containing the examples to predict.
      Returns:
      the results of the predictions, in the same order as the Dataset provides the examples.
    • 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
    • getExcuse

      public 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.
    • copy

      protected TransformedModel<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.