Class HdbscanModel
- All Implemented Interfaces:
com.oracle.labs.mlrg.olcut.provenance.Provenancable<ModelProvenance>
,Serializable
,ProtoSerializable<org.tribuo.protos.core.ModelProto>
The predict method of this model approximates the cluster labels for new data points, based on the current clustering. The model is not updated with the new data. This is a novel prediction technique which leverages the computed cluster exemplars from the HDBSCAN* algorithm.
See:
G. Stewart, M. Al-Khassaweneh. "An Implementation of the HDBSCAN* Clustering Algorithm", Applied Sciences. 2022; 12(5):2405. Manuscript
- 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 HdbscanModel
copy
(String newName, ModelProvenance newProvenance) Copies a model, replacing its provenance and name with the supplied values.static HdbscanModel
deserializeFromProto
(int version, String className, com.google.protobuf.Any message) Deserialization factory.Returns a deep copy of the cluster exemplars.Returns the cluster labels for the training data.Returns the features in each cluster exemplar.Generates an excuse for an example.Returns the GLOSH (Global-Local Outlier Scores from Hierarchies) outlier scores for the training data.getTopFeatures
(int n) Gets the topn
features associated with this model.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 HdbscanModel 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
.
-
getClusterLabels
Returns the cluster labels for the training data.The cluster labels are in the same order as the original data points. A label of
HdbscanTrainer.OUTLIER_NOISE_CLUSTER_LABEL
indicates an outlier or noise point.- Returns:
- The cluster labels for every data point from the training data.
-
getOutlierScores
Returns the GLOSH (Global-Local Outlier Scores from Hierarchies) outlier scores for the training data. These are values between 0 and 1. A higher score indicates that a point is more likely to be an outlier.The outlier scores are in the same order as the original data points.
- Returns:
- The outlier scores for every data point from the training data.
-
getClusterExemplars
Returns a deep copy of the cluster exemplars.- Returns:
- The cluster exemplars.
-
getClusters
Returns the features in each cluster exemplar.In many cases this should be used in preference to
getClusterExemplars()
as it performs the mapping from Tribuo's internal feature ids to the externally visible feature names.- Returns:
- The cluster exemplars.
-
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<ClusterID>
- 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
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.
-
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<ClusterID>
- 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.
-