Class 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.")
    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

    Erich Schubert
    • Field Detail

      • LOG

        private static final Logging LOG
        The logger for this class.
    • Constructor Detail

      • ByLabelHierarchicalClustering

        public ByLabelHierarchicalClustering()
        Constructor without parameters
    • Method Detail

      • run

        public Clustering<Model> run​(Relation<?> relation)
        Run the actual clustering algorithm.
        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
        labelMap - the mapping of label to ids
        label - the label of the object to be assigned
        id - 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 interface Algorithm
        Type restriction