Class HiCO

  • All Implemented Interfaces:
    elki.Algorithm, GeneralizedOPTICS, OPTICSTypeAlgorithm

    @Title("Mining Hierarchies of Correlation Clusters")
    @Description("Algorithm for detecting hierarchies of correlation clusters.")
    @Reference(authors="Elke Achtert, Christian B\u00f6hm, Peer Kr\u00f6ger, Arthur Zimek",
               title="Mining Hierarchies of Correlation Clusters",
               booktitle="Proc. Int. Conf. on Scientific and Statistical Database Management (SSDBM\'06)",
               url="https://doi.org/10.1109/SSDBM.2006.35",
               bibkey="DBLP:conf/ssdbm/AchtertBKZ06")
    public class HiCO
    extends java.lang.Object
    implements GeneralizedOPTICS
    Implementation of the HiCO algorithm, an algorithm for detecting hierarchies of correlation clusters.

    Reference:

    Elke Achtert, Christian Böhm, Peer Kröger, Arthur Zimek
    Mining Hierarchies of Correlation Clusters.
    Proc. Int. Conf. on Scientific and Statistical Database Management (SSDBM'06)

    Since:
    0.1
    Author:
    Elke Achtert
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private class  HiCO.Instance
      Instance of the OPTICS algorithm.
      static class  HiCO.Par
      Parameterization class.
      • Nested classes/interfaces inherited from interface elki.Algorithm

        elki.Algorithm.Utils
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static double DEFAULT_ALPHA
      The default value for HiCO.Par.ALPHA_ID.
      static double DEFAULT_DELTA
      The default value for HiCO.Par.DELTA_ID.
      private double deltasq
      Delta parameter
      private elki.math.linearalgebra.pca.filter.EigenPairFilter filter
      Filter for selecting eigenvectors
      private int k
      Number of neighbors to query.
      private static elki.logging.Logging LOG
      The logger for this class.
      private int mu
      Mu parameter.
      private elki.math.linearalgebra.pca.PCARunner pca
      PCA utility object.
    • Constructor Summary

      Constructors 
      Constructor Description
      HiCO​(int k, elki.math.linearalgebra.pca.PCARunner pca, double alpha, int mu, double delta)
      Constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private void adjust​(double[][] v, double[] vector, int corrDim)
      Inserts the specified vector into the given orthonormal matrix v at column corrDim.
      int correlationDistance​(elki.math.linearalgebra.pca.PCAFilteredResult pca1, elki.math.linearalgebra.pca.PCAFilteredResult pca2, int dimensionality)
      Computes the correlation distance between the two subspaces defined by the specified PCAs.
      elki.data.type.TypeInformation[] getInputTypeRestriction()  
      int getMinPts()
      Get the minpts value used.
      ClusterOrder run​(elki.database.relation.Relation<? extends elki.data.NumberVector> relation)
      Run the HiCO algorithm.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • LOG

        private static final elki.logging.Logging LOG
        The logger for this class.
      • deltasq

        private double deltasq
        Delta parameter
      • mu

        private int mu
        Mu parameter.
      • k

        private int k
        Number of neighbors to query.
      • pca

        private elki.math.linearalgebra.pca.PCARunner pca
        PCA utility object.
      • filter

        private elki.math.linearalgebra.pca.filter.EigenPairFilter filter
        Filter for selecting eigenvectors
    • Constructor Detail

      • HiCO

        public HiCO​(int k,
                    elki.math.linearalgebra.pca.PCARunner pca,
                    double alpha,
                    int mu,
                    double delta)
        Constructor.
        Parameters:
        k - number of neighbors k
        pca - PCA class
        alpha - Filter for selecting eigenvectors
        mu - Mu parameter
        delta - Delta parameter
    • Method Detail

      • getInputTypeRestriction

        public elki.data.type.TypeInformation[] getInputTypeRestriction()
        Specified by:
        getInputTypeRestriction in interface elki.Algorithm
      • run

        public ClusterOrder run​(elki.database.relation.Relation<? extends elki.data.NumberVector> relation)
        Run the HiCO algorithm.
        Parameters:
        relation - Data relation
        Returns:
        OPTICS cluster order
      • correlationDistance

        public int correlationDistance​(elki.math.linearalgebra.pca.PCAFilteredResult pca1,
                                       elki.math.linearalgebra.pca.PCAFilteredResult pca2,
                                       int dimensionality)
        Computes the correlation distance between the two subspaces defined by the specified PCAs.
        Parameters:
        pca1 - first PCA
        pca2 - second PCA
        dimensionality - the dimensionality of the data space
        Returns:
        the correlation distance between the two subspaces defined by the specified PCAs
      • adjust

        private void adjust​(double[][] v,
                            double[] vector,
                            int corrDim)
        Inserts the specified vector into the given orthonormal matrix v at column corrDim. After insertion the matrix v is orthonormalized and column corrDim of matrix e_czech is set to the corrDim-th unit vector.
        Parameters:
        v - the orthonormal matrix of the eigenvectors
        vector - the vector to be inserted
        corrDim - the column at which the vector should be inserted