Package elki.clustering.trivial
Class ByLabelHierarchicalClustering
- java.lang.Object
-
- elki.clustering.trivial.ByLabelHierarchicalClustering
-
- All Implemented Interfaces:
Algorithm,ClusteringAlgorithm<Clustering<Model>>
@Title("Hierarchical clustering by label") @Description("Cluster points by a (pre-assigned!) label. For comparing results with a reference clustering.") @Priority(-105) public class ByLabelHierarchicalClustering extends java.lang.Object implements ClusteringAlgorithm<Clustering<Model>>
Pseudo clustering using labels.This "algorithm" puts elements into the same cluster when they agree in their labels. I.e. it just uses a predefined clustering, and is mostly useful for testing and evaluation (e.g., comparing the result of a real algorithm to a reference result / golden standard).
This variant derives a hierarchical result by doing a prefix comparison on labels.
TODO: Noise handling (e.g., allow the user to specify a noise label pattern?)
TODO: allow specifying a separator character
- Since:
- 0.2
- Author:
- Erich Schubert
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface elki.Algorithm
Algorithm.Utils
-
-
Constructor Summary
Constructors Constructor Description ByLabelHierarchicalClustering()Constructor without parameters
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidassign(java.util.HashMap<java.lang.String,DBIDs> labelMap, java.lang.String label, DBIDRef id)Assigns the specified id to the labelMap according to its labelClustering<Model>autorun(Database database)Try to auto-run the algorithm on a database by calling a method calledrun, with an optionalDatabasefirst, and with data relations as specified byAlgorithm.getInputTypeRestriction().TypeInformation[]getInputTypeRestriction()Get the input type restriction used for negotiating the data query.Clustering<Model>run(Relation<?> relation)Run the actual clustering algorithm.
-
-
-
Field Detail
-
LOG
private static final Logging LOG
The logger for this class.
-
-
Method Detail
-
autorun
public Clustering<Model> autorun(Database database)
Description copied from interface:AlgorithmTry to auto-run the algorithm on a database by calling a method calledrun, with an optionalDatabasefirst, and with data relations as specified byAlgorithm.getInputTypeRestriction().- Specified by:
autorunin interfaceAlgorithm- Specified by:
autorunin interfaceClusteringAlgorithm<Clustering<Model>>- Parameters:
database- the database to run the algorithm on- Returns:
- the Result computed by this algorithm
-
run
public Clustering<Model> run(Relation<?> relation)
Run the actual clustering algorithm.- Parameters:
relation- The data input to use
-
assign
private void assign(java.util.HashMap<java.lang.String,DBIDs> labelMap, java.lang.String label, DBIDRef id)
Assigns the specified id to the labelMap according to its label- Parameters:
labelMap- the mapping of label to idslabel- the label of the object to be assignedid- the id of the object to be assigned
-
getInputTypeRestriction
public TypeInformation[] getInputTypeRestriction()
Description copied from interface:AlgorithmGet the input type restriction used for negotiating the data query.- Specified by:
getInputTypeRestrictionin interfaceAlgorithm- Returns:
- Type restriction
-
-