Class IndependentMultiLabelModel
- All Implemented Interfaces:
com.oracle.labs.mlrg.olcut.provenance.Provenancable<ModelProvenance>
,Serializable
,ProtoSerializable<org.tribuo.protos.core.ModelProto>
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:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
Protobuf serialization version.Fields inherited from class org.tribuo.Model
ALL_OUTPUTS, BIAS_FEATURE, featureIDMap, generatesProbabilities, name, outputIDInfo, provenance, provenanceOutput
Fields inherited from interface org.tribuo.protos.ProtoSerializable
DESERIALIZATION_METHOD_NAME, PROVENANCE_SERIALIZER
-
Method Summary
Modifier and TypeMethodDescriptionprotected IndependentMultiLabelModel
copy
(String newName, ModelProvenance newProvenance) Copies a model, replacing its provenance and name with the supplied values.static IndependentMultiLabelModel
deserializeFromProto
(int version, String className, com.google.protobuf.Any message) Deserialization factory.getExcuse
(Example<MultiLabel> example) Generates an excuse for an example.Returns the training label order.Returns an unmodifiable view on the binary model members.getTopFeatures
(int n) This aggregates the top features from each of the models.predict
(Example<MultiLabel> example) Uses the model to predict the output for a single example.org.tribuo.protos.core.ModelProto
Serializes this object to a protobuf.Methods inherited from class org.tribuo.Model
castModel, copy, createDataCarrier, deserialize, deserializeFromFile, deserializeFromStream, generatesProbabilities, getExcuses, getFeatureIDMap, getName, getOutputIDInfo, getProvenance, innerPredict, predict, predict, serializeToFile, serializeToStream, setName, toString, validate
-
Field Details
-
CURRENT_VERSION
public static final int CURRENT_VERSIONProtobuf serialization version.- See Also:
-
-
Method Details
-
deserializeFromProto
public static IndependentMultiLabelModel 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
.
-
getModels
Returns an unmodifiable view on the binary model members.- Returns:
- The binary model members.
-
getLabelOrder
Returns the training label order.- Returns:
- The training label order.
-
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.- Specified by:
predict
in classModel<MultiLabel>
- Parameters:
example
- the example to predict.- Returns:
- the result of the prediction.
-
getTopFeatures
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 classModel<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
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 classModel<MultiLabel>
- Parameters:
example
- The input example.- Returns:
- An optional excuse object. The optional is empty if this model does not provide excuses.
-
serialize
public org.tribuo.protos.core.ModelProto serialize()Description copied from interface:ProtoSerializable
Serializes this object to a protobuf.- Specified by:
serialize
in interfaceProtoSerializable<org.tribuo.protos.core.ModelProto>
- Overrides:
serialize
in classModel<MultiLabel>
- Returns:
- The protobuf.
-
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.
- Specified by:
copy
in classModel<MultiLabel>
- Parameters:
newName
- The new name.newProvenance
- The new provenance.- Returns:
- A copy of the model.
-