Class ERiC

  • All Implemented Interfaces:
    Algorithm, ClusteringAlgorithm<Clustering<CorrelationModel>>

    @Title("ERiC: Exploring Relationships among Correlation Clusters")
    @Description("Performs the DBSCAN algorithm on the data using a special distance function taking into account correlations among attributes and builds a hierarchy that allows multiple inheritance from the correlation clustering result.")
    @Reference(authors="Elke Achtert, Christian B\u00f6hm, Hans-Peter Kriegel, Peer Kr\u00f6ger, Arthur Zimek",
               title="On Exploring Complex Relationships of Correlation Clusters",
               booktitle="Proc. 19th Int. Conf. Scientific and Statistical Database Management (SSDBM 2007)",
               url="https://doi.org/10.1109/SSDBM.2007.21",
               bibkey="DBLP:conf/ssdbm/AchtertBKKZ07")
    public class ERiC
    extends java.lang.Object
    implements ClusteringAlgorithm<Clustering<CorrelationModel>>
    Performs correlation clustering on the data partitioned according to local correlation dimensionality and builds a hierarchy of correlation clusters that allows multiple inheritance from the clustering result.

    Reference:

    Elke Achtert, Christian Böhm, Hans-Peter Kriegel, Peer Kröger, Arthur Zimek
    On Exploring Complex Relationships of Correlation Clusters
    Proc. 19th Int. Conf. Scientific and Statistical Database Management (SSDBM 2007)

    Since:
    0.1
    Author:
    Elke Achtert
    • Field Detail

      • LOG

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

      • ERiC

        public ERiC​(ERiC.Settings settings)
        Constructor.
        Parameters:
        settings - ERiC clustering settings
    • Method Detail

      • 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
        Returns:
        Type restriction
      • extractCorrelationClusters

        private java.util.List<java.util.List<Cluster<CorrelationModel>>> extractCorrelationClusters​(Clustering<Model> dbscanResult,
                                                                                                     Relation<? extends NumberVector> relation,
                                                                                                     int dimensionality,
                                                                                                     ERiCNeighborPredicate.Instance npred)
        Extracts the correlation clusters and noise from the copac result and returns a mapping of correlation dimension to maps of clusters within this correlation dimension. Each cluster is defined by the basis vectors defining the subspace in which the cluster appears.
        Parameters:
        dbscanResult - DBSCAN clustering to use
        relation - the database containing the objects
        dimensionality - the dimensionality of the feature space
        npred - ERiC predicate
        Returns:
        a list of clusters for each dimensionality
      • isParent

        private boolean isParent​(ERiCNeighborPredicate.Instance npred,
                                 Cluster<CorrelationModel> parent,
                                 It<Cluster<CorrelationModel>> iter)
        Returns true, if the specified parent cluster is a parent of one child of the children clusters.
        Parameters:
        npred - Neighborhood predicate
        parent - the parent to be tested
        iter - the list of children to be tested
        Returns:
        true, if the specified parent cluster is a parent of one child of the children clusters, false otherwise