Class LibLinearAnomalyModel

java.lang.Object
org.tribuo.Model<T>
org.tribuo.common.liblinear.LibLinearModel<Event>
org.tribuo.anomaly.liblinear.LibLinearAnomalyModel
All Implemented Interfaces:
com.oracle.labs.mlrg.olcut.provenance.Provenancable<ModelProvenance>, Serializable, ProtoSerializable<org.tribuo.protos.core.ModelProto>

public class LibLinearAnomalyModel extends LibLinearModel<Event>
A Model which wraps a LibLinear-java anomaly detection model.

It disables the LibLinear debug output as it's very chatty.

See:

 Fan RE, Chang KW, Hsieh CJ, Wang XR, Lin CJ.
 "LIBLINEAR: A library for Large Linear Classification"
 Journal of Machine Learning Research, 2008.
 
and for the original algorithm:
 Cortes C, Vapnik V.
 "Support-Vector Networks"
 Machine Learning, 1995.
 
See Also:
  • Method Details

    • deserializeFromProto

      public static LibLinearAnomalyModel deserializeFromProto(int version, String className, com.google.protobuf.Any message) throws com.google.protobuf.InvalidProtocolBufferException
      Deserialization factory.
      Parameters:
      version - The serialized object version.
      className - The class name.
      message - The serialized data.
      Returns:
      The deserialized object.
      Throws:
      com.google.protobuf.InvalidProtocolBufferException - If the protobuf could not be parsed from the message.
    • predict

      public Prediction<Event> predict(Example<Event> 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<Event>
      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)
      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<Event>
      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
    • copy

      protected LibLinearAnomalyModel 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<Event>
      Parameters:
      newName - The new name.
      newProvenance - The new provenance.
      Returns:
      A copy of the model.
    • getFeatureWeights

      protected double[][] getFeatureWeights()
      Description copied from class: LibLinearModel
      Extracts the feature weights from the models. The first dimension corresponds to the model index.
      Specified by:
      getFeatureWeights in class LibLinearModel<Event>
      Returns:
      The feature weights.
    • innerGetExcuse

      protected Excuse<Event> innerGetExcuse(Example<Event> e, double[][] allFeatureWeights)
      The call to model.getFeatureWeights in the public methods copies the weights array so this inner method exists to save the copy in getExcuses.

      If it becomes a problem then we could cache the feature weights in the model.

      Specified by:
      innerGetExcuse in class LibLinearModel<Event>
      Parameters:
      e - The example.
      allFeatureWeights - The feature weights.
      Returns:
      An excuse for this example.