Class IndependentMultiLabelModel

java.lang.Object
org.tribuo.Model<MultiLabel>
org.tribuo.multilabel.baseline.IndependentMultiLabelModel
All Implemented Interfaces:
com.oracle.labs.mlrg.olcut.provenance.Provenancable<ModelProvenance>, Serializable

public class IndependentMultiLabelModel extends Model<MultiLabel>
A Model which wraps n binary models, where n is the size of the MultiLabel domain. Each model independently predicts a single binary label.

It is possible for the prediction to produce an empty MultiLabel when none of the binary Labels were predicted.

This model implements the approach known as "Binary Relevance" in the multi-label classification literature.

See Also:
  • Method Details

    • predict

      public Prediction<MultiLabel> predict(Example<MultiLabel> 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<MultiLabel>
      Parameters:
      example - the example to predict.
      Returns:
      the result of the prediction.
    • getTopFeatures

      public Map<String,List<com.oracle.labs.mlrg.olcut.util.Pair<String,Double>>> getTopFeatures(int n)
      This aggregates the top features from each of the models.

      If the individual models support per label features, then only the features for the positive label are aggregated.

      Specified by:
      getTopFeatures in class Model<MultiLabel>
      Parameters:
      n - the number of features to return. If this value is less than 0, all features should be returned for each class.
      Returns:
      The top n features.
    • getExcuse

      public Optional<Excuse<MultiLabel>> getExcuse(Example<MultiLabel> 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<MultiLabel>
      Parameters:
      example - The input example.
      Returns:
      An optional excuse object. The optional is empty if this model does not provide excuses.
    • copy

      protected IndependentMultiLabelModel copy(String newName, 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<MultiLabel>
      Parameters:
      newName - The new name.
      newProvenance - The new provenance.
      Returns:
      A copy of the model.