Class AbstractLinearSGDModel<T extends Output<T>>

java.lang.Object
org.tribuo.Model<T>
org.tribuo.common.sgd.AbstractSGDModel<T>
org.tribuo.common.sgd.AbstractLinearSGDModel<T>
All Implemented Interfaces:
com.oracle.labs.mlrg.olcut.provenance.Provenancable<ModelProvenance>, Serializable, ProtoSerializable<org.tribuo.protos.core.ModelProto>
Direct Known Subclasses:
LinearSGDModel, LinearSGDModel, LinearSGDModel

public abstract class AbstractLinearSGDModel<T extends Output<T>> extends AbstractSGDModel<T>
A linear model trained using SGD.

It's an AbstractSGDModel containing a LinearParameters, with the bias folded into the features.

See:

 Bottou L.
 "Large-Scale Machine Learning with Stochastic Gradient Descent"
 Proceedings of COMPSTAT, 2010.
 
See Also:
  • Constructor Details

    • AbstractLinearSGDModel

      protected AbstractLinearSGDModel(String name, ModelProvenance provenance, ImmutableFeatureMap featureIDMap, ImmutableOutputInfo<T> outputIDInfo, LinearParameters parameters, boolean generatesProbabilities)
      Constructs a linear model trained via SGD.
      Parameters:
      name - The model name.
      provenance - The model provenance.
      featureIDMap - The feature domain.
      outputIDInfo - The output domain.
      parameters - The model parameters.
      generatesProbabilities - Does this model generate probabilities?
  • Method Details

    • 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.
    • getDimensionName

      protected abstract String getDimensionName(int index)
      Gets the name of the indexed output dimension.
      Parameters:
      index - The output dimension index.
      Returns:
      The name of the requested output dimension.
    • getWeightsCopy

      public DenseMatrix getWeightsCopy()
      Returns a copy of the weights.
      Returns:
      A copy of the weights.
    • onnxOutput

      protected abstract ONNXNode onnxOutput(ONNXNode input)
      Takes the unnormalized ONNX output of this model and applies an appropriate normalizer from the concrete class.
      Parameters:
      input - Unnormalized ONNX leaf node.
      Returns:
      Normalized ONNX leaf node.
    • onnxModelName

      protected abstract String onnxModelName()
      Returns:
      Name to write into the ONNX Model.
    • writeONNXGraph

      public ONNXNode writeONNXGraph(ONNXRef<?> input)
      Writes this Model into OnnxMl.GraphProto.Builder inside the input's ONNXContext.
      Parameters:
      input - The input to the model graph.
      Returns:
      the output node of the model graph.
    • exportONNXModel

      public ai.onnx.proto.OnnxMl.ModelProto exportONNXModel(String domain, long modelVersion)
      Exports this Model as an ONNX protobuf.
      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.