V
- the type of NumberVector handled by this Algorithm@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<?>> extends AbstractAlgorithm<Clustering<CorrelationModel<V>>> implements ClusteringAlgorithm<Clustering<CorrelationModel<V>>>
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.
Modifier and Type | Class and Description |
---|---|
static class |
ERiC.Parameterizer<V extends NumberVector<?>>
Parameterization class.
|
Modifier and Type | Field and Description |
---|---|
private COPAC<V,IntegerDistance> |
copacAlgorithm
The COPAC clustering algorithm.
|
private static Logging |
LOG
The logger for this class.
|
Constructor and Description |
---|
ERiC(COPAC<V,IntegerDistance> copacAlgorithm)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
private void |
buildHierarchy(Clustering<CorrelationModel<V>> clustering,
List<List<Cluster<CorrelationModel<V>>>> clusterMap,
DistanceQuery<V,IntegerDistance> query) |
private List<List<Cluster<CorrelationModel<V>>>> |
extractCorrelationClusters(Clustering<Model> copacResult,
Relation<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.
|
TypeInformation[] |
getInputTypeRestriction()
Get the input type restriction used for negotiating the data query.
|
protected Logging |
getLogger()
Get the (STATIC) logger for this class.
|
private boolean |
isParent(ERiCDistanceFunction distanceFunction,
Cluster<CorrelationModel<V>> parent,
Hierarchy.Iter<Cluster<CorrelationModel<V>>> iter)
Returns true, if the specified parent cluster is a parent of one child of
the children clusters.
|
private ListParameterization |
pcaParameters(int correlationDimension)
Returns the parameters for the PCA for the specified correlation dimension.
|
Clustering<CorrelationModel<V>> |
run(Relation<V> relation)
Performs the ERiC algorithm on the given database.
|
makeParameterDistanceFunction, run
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
run
private static final Logging LOG
private COPAC<V extends NumberVector<?>,IntegerDistance> copacAlgorithm
public ERiC(COPAC<V,IntegerDistance> copacAlgorithm)
copacAlgorithm
- COPAC to usepublic Clustering<CorrelationModel<V>> run(Relation<V> relation)
relation
- Relation to processprivate List<List<Cluster<CorrelationModel<V>>>> extractCorrelationClusters(Clustering<Model> copacResult, Relation<V> database, int dimensionality)
copacResult
- database
- the database containing the objectsdimensionality
- the dimensionality of the feature spaceprivate ListParameterization pcaParameters(int correlationDimension)
correlationDimension
- the correlation dimensionprivate void buildHierarchy(Clustering<CorrelationModel<V>> clustering, List<List<Cluster<CorrelationModel<V>>>> clusterMap, DistanceQuery<V,IntegerDistance> query)
private boolean isParent(ERiCDistanceFunction distanceFunction, Cluster<CorrelationModel<V>> parent, Hierarchy.Iter<Cluster<CorrelationModel<V>>> iter)
distanceFunction
- the distance function for distance computation
between the clustersparent
- the parent to be testediter
- the list of children to be testedpublic TypeInformation[] getInputTypeRestriction()
AbstractAlgorithm
getInputTypeRestriction
in interface Algorithm
getInputTypeRestriction
in class AbstractAlgorithm<Clustering<CorrelationModel<V extends NumberVector<?>>>>
protected Logging getLogger()
AbstractAlgorithm
getLogger
in class AbstractAlgorithm<Clustering<CorrelationModel<V extends NumberVector<?>>>>