Class LibLinearClassificationModel
java.lang.Object
org.tribuo.Model<T>
org.tribuo.common.liblinear.LibLinearModel<Label>
org.tribuo.classification.liblinear.LibLinearClassificationModel
- All Implemented Interfaces:
com.oracle.labs.mlrg.olcut.provenance.Provenancable<ModelProvenance>
,Serializable
,ONNXExportable
,ProtoSerializable<org.tribuo.protos.core.ModelProto>
A
Model
which wraps a LibLinear-java classification 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:
-
Field Summary
Fields inherited from class org.tribuo.common.liblinear.LibLinearModel
CURRENT_VERSION, models
Fields inherited from class org.tribuo.Model
ALL_OUTPUTS, BIAS_FEATURE, featureIDMap, generatesProbabilities, name, outputIDInfo, provenance, provenanceOutput
Fields inherited from interface org.tribuo.ONNXExportable
PROVENANCE_METADATA_FIELD, SERIALIZER
Fields inherited from interface org.tribuo.protos.ProtoSerializable
DESERIALIZATION_METHOD_NAME, PROVENANCE_SERIALIZER
-
Method Summary
Modifier and TypeMethodDescriptionprotected LibLinearClassificationModel
copy
(String newName, ModelProvenance newProvenance) Copies a model, replacing its provenance and name with the supplied values.static LibLinearClassificationModel
deserializeFromProto
(int version, String className, com.google.protobuf.Any message) Deserialization factory.ai.onnx.proto.OnnxMl.ModelProto
exportONNXModel
(String domain, long modelVersion) Exports thisModel
as an ONNX protobuf.protected double[][]
Extracts the feature weights from the models.getTopFeatures
(int n) Gets the topn
features associated with this model.innerGetExcuse
(Example<Label> 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.Uses the model to predict the output for a single example.writeONNXGraph
(ONNXRef<?> input) Methods inherited from class org.tribuo.common.liblinear.LibLinearModel
copyModel, getExcuse, getExcuses, getInnerModels, serialize
Methods inherited from class org.tribuo.Model
castModel, copy, createDataCarrier, deserialize, deserializeFromFile, deserializeFromStream, generatesProbabilities, getFeatureIDMap, getName, getOutputIDInfo, getProvenance, innerPredict, predict, predict, serializeToFile, serializeToStream, setName, toString, validate
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.tribuo.ONNXExportable
saveONNXModel, serializeProvenance
-
Method Details
-
deserializeFromProto
public static LibLinearClassificationModel 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 themessage
.
-
predict
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. -
getTopFeatures
Description copied from class:Model
Gets the topn
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 classModel<Label>
- 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
Description copied from class:Model
Copies a model, replacing its provenance and name with the supplied values.Used to provide the provenance removal functionality.
-
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 classLibLinearModel<Label>
- Returns:
- The feature weights.
-
innerGetExcuse
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 classLibLinearModel<Label>
- Parameters:
e
- The example.allFeatureWeights
- The feature weights.- Returns:
- An excuse for this example.
-
exportONNXModel
Description copied from interface:ONNXExportable
Exports thisModel
as an ONNX protobuf.- Specified by:
exportONNXModel
in interfaceONNXExportable
- 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
Description copied from interface:ONNXExportable
- Specified by:
writeONNXGraph
in interfaceONNXExportable
- Parameters:
input
- The input to the model graph.- Returns:
- the output node of the model graph.
-