de.lmu.ifi.dbs.elki.algorithm.clustering.correlation
Class ERiC<V extends NumberVector<V,?>>
java.lang.Object
de.lmu.ifi.dbs.elki.logging.AbstractLoggable
de.lmu.ifi.dbs.elki.algorithm.AbstractAlgorithm<V,Clustering<CorrelationModel<V>>>
de.lmu.ifi.dbs.elki.algorithm.clustering.correlation.ERiC<V>
- Type Parameters:
V
- the type of NumberVector handled by this Algorithm
- All Implemented Interfaces:
- Algorithm<V,Clustering<CorrelationModel<V>>>, ClusteringAlgorithm<Clustering<CorrelationModel<V>>,V>, Parameterizable
@Title(value="ERiC: Exploring Relationships among Correlation Clusters")
@Description(value="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="E. Achtert, C. B\u00f6hm, H.-P. Kriegel, P. Kr\u00f6ger, and A. Zimek",
title="On Exploring Complex Relationships of Correlation Clusters",
booktitle="Proc. 19th International Conference on Scientific and Statistical Database Management (SSDBM 2007), Banff, Canada, 2007",
url="http://dx.doi.org/10.1109/SSDBM.2007.21")
public class ERiC<V extends NumberVector<V,?>>
- extends AbstractAlgorithm<V,Clustering<CorrelationModel<V>>>
- implements ClusteringAlgorithm<Clustering<CorrelationModel<V>>,V>
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: E. Achtert, C. Böhm, H.-P. Kriegel, P. Kröger, and A. Zimek: On
Exploring Complex Relationships of Correlation Clusters.
In Proc. 19th International Conference on Scientific and Statistical Database
Management (SSDBM 2007), Banff, Canada, 2007.
- Author:
- Elke Achtert
Constructor Summary |
ERiC(Parameterization config)
Performs the COPAC algorithm on the data and builds a hierarchy of
correlation clusters that allows multiple inheritance from the clustering
result. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
copacAlgorithm
private COPAC<V extends NumberVector<V,?>> copacAlgorithm
- The COPAC clustering algorithm.
ERiC
public ERiC(Parameterization config)
- Performs the COPAC algorithm on the data and builds a hierarchy of
correlation clusters that allows multiple inheritance from the clustering
result.
Constructor, adhering to
Parameterizable
- Parameters:
config
- Parameterization
runInTime
protected Clustering<CorrelationModel<V>> runInTime(Database<V> database)
throws IllegalStateException
- Performs the ERiC algorithm on the given database.
- Specified by:
runInTime
in class AbstractAlgorithm<V extends NumberVector<V,?>,Clustering<CorrelationModel<V extends NumberVector<V,?>>>>
- Parameters:
database
- the database to run the algorithm on
- Returns:
- the Result computed by this algorithm
- Throws:
IllegalStateException
- if the algorithm has not been initialized
properly (e.g. the setParameters(String[]) method has been failed
to be called).
extractCorrelationClusters
private SortedMap<Integer,List<Cluster<CorrelationModel<V>>>> extractCorrelationClusters(Clustering<Model> copacResult,
Database<V> database,
int dimensionality)
- 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:
copacResult
- database
- the database containing the objectsdimensionality
- the dimensionality of the feature space
- Returns:
- a mapping of correlation dimension to maps of clusters
pcaParameters
private ListParameterization pcaParameters(int correlationDimension)
- Returns the parameters for the PCA for the specified correlation dimension.
- Parameters:
correlationDimension
- the correlation dimension
- Returns:
- the parameters for the PCA for the specified correlation dimension
buildHierarchy
private void buildHierarchy(SortedMap<Integer,List<Cluster<CorrelationModel<V>>>> clusterMap)
throws IllegalStateException
- Throws:
IllegalStateException
isParent
private boolean isParent(ERiCDistanceFunction<V,?> distanceFunction,
Cluster<CorrelationModel<V>> parent,
List<Cluster<CorrelationModel<V>>> children)
- Returns true, if the specified parent cluster is a parent of one child of
the children clusters.
- Parameters:
distanceFunction
- the distance function for distance computation
between the clustersparent
- the parent to be testedchildren
- 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