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 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 labelClustering<Model>
autorun(Database database)
Try to auto-run the algorithm on a database by calling a method calledrun
, with an optionalDatabase
first, 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:Algorithm
Try to auto-run the algorithm on a database by calling a method calledrun
, with an optionalDatabase
first, and with data relations as specified byAlgorithm.getInputTypeRestriction()
.- Specified by:
autorun
in interfaceAlgorithm
- Specified by:
autorun
in 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:Algorithm
Get the input type restriction used for negotiating the data query.- Specified by:
getInputTypeRestriction
in interfaceAlgorithm
- Returns:
- Type restriction
-
-