diff options
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/algorithm/clustering/subspace/CLIQUE.java')
-rw-r--r-- | src/de/lmu/ifi/dbs/elki/algorithm/clustering/subspace/CLIQUE.java | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/algorithm/clustering/subspace/CLIQUE.java b/src/de/lmu/ifi/dbs/elki/algorithm/clustering/subspace/CLIQUE.java index 617d74cd..f55ec964 100644 --- a/src/de/lmu/ifi/dbs/elki/algorithm/clustering/subspace/CLIQUE.java +++ b/src/de/lmu/ifi/dbs/elki/algorithm/clustering/subspace/CLIQUE.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.algorithm.clustering.subspace; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team @@ -35,9 +35,9 @@ import java.util.TreeMap; import de.lmu.ifi.dbs.elki.algorithm.AbstractAlgorithm; import de.lmu.ifi.dbs.elki.algorithm.clustering.subspace.clique.CLIQUESubspace; import de.lmu.ifi.dbs.elki.algorithm.clustering.subspace.clique.CLIQUEUnit; +import de.lmu.ifi.dbs.elki.algorithm.clustering.subspace.clique.CLIQUEInterval; import de.lmu.ifi.dbs.elki.data.Cluster; import de.lmu.ifi.dbs.elki.data.Clustering; -import de.lmu.ifi.dbs.elki.data.Interval; import de.lmu.ifi.dbs.elki.data.NumberVector; import de.lmu.ifi.dbs.elki.data.Subspace; import de.lmu.ifi.dbs.elki.data.model.SubspaceModel; @@ -95,7 +95,7 @@ import de.lmu.ifi.dbs.elki.utilities.pairs.Pair; @Title("CLIQUE: Automatic Subspace Clustering of High Dimensional Data for Data Mining Applications") @Description("Grid-based algorithm to identify dense clusters in subspaces of maximum dimensionality.") @Reference(authors = "R. Agrawal, J. Gehrke, D. Gunopulos, P. Raghavan", title = "Automatic Subspace Clustering of High Dimensional Data for Data Mining Applications", booktitle = "Proc. SIGMOD Conference, Seattle, WA, 1998", url = "http://dx.doi.org/10.1145/276304.276314") -public class CLIQUE<V extends NumberVector<?>> extends AbstractAlgorithm<Clustering<SubspaceModel<V>>> implements SubspaceClusteringAlgorithm<SubspaceModel<V>> { +public class CLIQUE<V extends NumberVector> extends AbstractAlgorithm<Clustering<SubspaceModel>> implements SubspaceClusteringAlgorithm<SubspaceModel> { /** * The logger for this class. */ @@ -165,7 +165,7 @@ public class CLIQUE<V extends NumberVector<?>> extends AbstractAlgorithm<Cluster * @param relation Data relation to process * @return Clustering result */ - public Clustering<SubspaceModel<V>> run(Relation<V> relation) { + public Clustering<SubspaceModel> run(Relation<V> relation) { // 1. Identification of subspaces that contain clusters // TODO: use step logging. if(LOG.isVerbose()) { @@ -203,7 +203,7 @@ public class CLIQUE<V extends NumberVector<?>> extends AbstractAlgorithm<Cluster } // build result int numClusters = 1; - Clustering<SubspaceModel<V>> result = new Clustering<>("CLIQUE clustering", "clique-clustering"); + Clustering<SubspaceModel> result = new Clustering<>("CLIQUE clustering", "clique-clustering"); for(Integer dim : dimensionToDenseSubspaces.keySet()) { List<CLIQUESubspace<V>> subspaces = dimensionToDenseSubspaces.get(dim); List<Pair<Subspace, ModifiableDBIDs>> modelsAndClusters = determineClusters(subspaces); @@ -213,8 +213,8 @@ public class CLIQUE<V extends NumberVector<?>> extends AbstractAlgorithm<Cluster } for(Pair<Subspace, ModifiableDBIDs> modelAndCluster : modelsAndClusters) { - Cluster<SubspaceModel<V>> newCluster = new Cluster<>(modelAndCluster.second); - newCluster.setModel(new SubspaceModel<>(modelAndCluster.first, Centroid.make(relation, modelAndCluster.second).toVector(relation))); + Cluster<SubspaceModel> newCluster = new Cluster<>(modelAndCluster.second); + newCluster.setModel(new SubspaceModel(modelAndCluster.first, Centroid.make(relation, modelAndCluster.second))); newCluster.setName("cluster_" + numClusters++); result.addToplevelCluster(newCluster); } @@ -313,9 +313,9 @@ public class CLIQUE<V extends NumberVector<?>> extends AbstractAlgorithm<Cluster if(LOG.isDebuggingFiner()) { StringBuilder msg = new StringBuilder(); - msg.append(" minima: ").append(FormatUtil.format(minima, ", ", 2)); - msg.append("\n maxima: ").append(FormatUtil.format(maxima, ", ", 2)); - msg.append("\n unit lengths: ").append(FormatUtil.format(unit_lengths, ", ", 2)); + msg.append(" minima: ").append(FormatUtil.format(minima, ", ", FormatUtil.NF2)); + msg.append("\n maxima: ").append(FormatUtil.format(maxima, ", ", FormatUtil.NF2)); + msg.append("\n unit lengths: ").append(FormatUtil.format(unit_lengths, ", ", FormatUtil.NF2)); LOG.debugFiner(msg.toString()); } @@ -341,7 +341,7 @@ public class CLIQUE<V extends NumberVector<?>> extends AbstractAlgorithm<Cluster List<CLIQUEUnit<V>> units = new ArrayList<>((xsi * dimensionality)); for(int x = 0; x < xsi; x++) { for(int d = 0; d < dimensionality; d++) { - units.add(new CLIQUEUnit<V>(new Interval(d, unit_bounds[x][d], unit_bounds[x + 1][d]))); + units.add(new CLIQUEUnit<V>(new CLIQUEInterval(d, unit_bounds[x][d], unit_bounds[x + 1][d]))); } } @@ -582,7 +582,7 @@ public class CLIQUE<V extends NumberVector<?>> extends AbstractAlgorithm<Cluster * * @apiviz.exclude */ - public static class Parameterizer<V extends NumberVector<?>> extends AbstractParameterizer { + public static class Parameterizer<V extends NumberVector> extends AbstractParameterizer { protected int xsi; protected double tau; |