Class SparseLinearModel

All Implemented Interfaces:
com.oracle.labs.mlrg.olcut.provenance.Provenancable<ModelProvenance>, Serializable, ONNXExportable, ProtoSerializable<org.tribuo.protos.core.ModelProto>

public class SparseLinearModel extends SkeletalIndependentRegressionSparseModel implements ONNXExportable
The inference time version of a sparse linear regression model.

The type of the model depends on the trainer used.

See Also:
  • Field Details

    • CURRENT_VERSION

      public static final int CURRENT_VERSION
      Protobuf serialization version.
      See Also:
  • Method Details

    • deserializeFromProto

      public static SparseLinearModel 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.
    • createFeatures

      protected SparseVector createFeatures(Example<Regressor> example)
      Creates the feature vector. Includes a bias term if the model requires it.
      Overrides:
      createFeatures in class SkeletalIndependentRegressionSparseModel
      Parameters:
      example - The example to convert.
      Returns:
      The feature vector.
    • scoreDimension

      protected Regressor.DimensionTuple scoreDimension(int dimensionIdx, SparseVector features)
      Description copied from class: SkeletalIndependentRegressionSparseModel
      Makes a prediction for a single dimension.
      Specified by:
      scoreDimension in class SkeletalIndependentRegressionSparseModel
      Parameters:
      dimensionIdx - The dimension index to predict.
      features - The features to use.
      Returns:
      A single dimension 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<Regressor>
      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<Regressor>> getExcuse(Example<Regressor> 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<Regressor>
      Parameters:
      example - The input example.
      Returns:
      An optional excuse object. The optional is empty if this model does not provide excuses.
    • copy

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

      public Map<String,SparseVector> getWeights()
      Gets a copy of the model parameters.
      Returns:
      A map from the dimension name to the model parameters.
    • serialize

      public org.tribuo.protos.core.ModelProto serialize()
      Description copied from interface: ProtoSerializable
      Serializes this object to a protobuf.
      Specified by:
      serialize in interface ProtoSerializable<org.tribuo.protos.core.ModelProto>
      Overrides:
      serialize in class Model<Regressor>
      Returns:
      The protobuf.
    • exportONNXModel

      public ai.onnx.proto.OnnxMl.ModelProto exportONNXModel(String domain, long modelVersion)
      Description copied from interface: ONNXExportable
      Exports this Model as an ONNX protobuf.
      Specified by:
      exportONNXModel in interface ONNXExportable
      Parameters:
      domain - A reverse-DNS name to namespace the model (e.g., org.tribuo.classification.sgd.linear).
      modelVersion - A version number for this model.
      Returns:
      The ONNX ModelProto representing this Tribuo Model.
    • writeONNXGraph

      public ONNXNode writeONNXGraph(ONNXRef<?> input)
      Description copied from interface: ONNXExportable
      Writes this Model into OnnxMl.GraphProto.Builder inside the input's ONNXContext.
      Specified by:
      writeONNXGraph in interface ONNXExportable
      Parameters:
      input - The input to the model graph.
      Returns:
      the output node of the model graph.