| 
  | 
|||||||||||||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||||||||||||||
java.lang.Objectde.lmu.ifi.dbs.elki.logging.AbstractLoggable
de.lmu.ifi.dbs.elki.algorithm.AbstractAlgorithm<V,Clustering<SubspaceModel<V>>>
de.lmu.ifi.dbs.elki.algorithm.clustering.subspace.CLIQUE<V>
V - the type of NumberVector handled by this Algorithm@Title(value="CLIQUE: Automatic Subspace Clustering of High Dimensional Data for Data Mining Applications")
@Description(value="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<V,?>>Implementation of the CLIQUE algorithm, a grid-based algorithm to identify dense clusters in subspaces of maximum dimensionality. The implementation consists of two steps:
 Reference: 
 R. Agrawal, J. Gehrke, D. Gunopulos, P. Raghavan:: Automatic Subspace
 Clustering of High Dimensional Data for Data Mining Applications. 
 In Proc. ACM SIGMOD Int. Conf. on Management of Data, Seattle, WA, 1998.
 
| Field Summary | |
|---|---|
private  boolean | 
prune
Holds the value of PRUNE_FLAG. | 
private  Flag | 
PRUNE_FLAG
Flag to indicate that only subspaces with large coverage (i.e. the fraction of the database that is covered by the dense units) are selected, the rest will be pruned.  | 
static OptionID | 
PRUNE_ID
OptionID for PRUNE_FLAG | 
private  double | 
tau
Holds the value of TAU_PARAM. | 
static OptionID | 
TAU_ID
OptionID for TAU_PARAM | 
private  DoubleParameter | 
TAU_PARAM
Parameter to specify the density threshold for the selectivity of a unit, where the selectivity is the fraction of total feature vectors contained in this unit, must be a double greater than 0 and less than 1.  | 
private  int | 
xsi
Holds the value of XSI_PARAM. | 
static OptionID | 
XSI_ID
OptionID for XSI_PARAM | 
private  IntParameter | 
XSI_PARAM
Parameter to specify the number of intervals (units) in each dimension, must be an integer greater than 0.  | 
| Fields inherited from class de.lmu.ifi.dbs.elki.logging.AbstractLoggable | 
|---|
debug, logger | 
| Constructor Summary | |
|---|---|
CLIQUE(Parameterization config)
Constructor, adhering to Parameterizable | 
|
| Method Summary | |
|---|---|
private  double[][] | 
computeDiffs(List<CLIQUESubspace<V>> denseSubspaces,
             int[] mi,
             int[] mp)
The specified sorted list of dense subspaces is divided into the selected set I and the pruned set P.  | 
private  int[][] | 
computeMeans(List<CLIQUESubspace<V>> denseSubspaces)
The specified sorted list of dense subspaces is divided into the selected set I and the pruned set P.  | 
private  List<Pair<Subspace<V>,Set<Integer>>> | 
determineClusters(Database<V> database,
                  List<CLIQUESubspace<V>> denseSubspaces)
Determines the clusters in the specified dense subspaces.  | 
private  List<CLIQUESubspace<V>> | 
findDenseSubspaceCandidates(Database<V> database,
                            List<CLIQUESubspace<V>> denseSubspaces)
Determines the k-dimensional dense subspace candidates from the
 specified (k-1)-dimensional dense subspaces. | 
private  List<CLIQUESubspace<V>> | 
findDenseSubspaces(Database<V> database,
                   List<CLIQUESubspace<V>> denseSubspaces)
Determines the k-dimensional dense subspaces and performs a pruning
 if this option is chosen. | 
private  List<CLIQUESubspace<V>> | 
findOneDimensionalDenseSubspaceCandidates(Database<V> database)
Determines the one-dimensional dense subspace candidates by making a pass over the database.  | 
private  List<CLIQUESubspace<V>> | 
findOneDimensionalDenseSubspaces(Database<V> database)
Determines the one dimensional dense subspaces and performs a pruning if this option is chosen.  | 
private  Collection<CLIQUEUnit<V>> | 
initOneDimensionalUnits(Database<V> database)
Initializes and returns the one dimensional units.  | 
private  List<CLIQUESubspace<V>> | 
pruneDenseSubspaces(List<CLIQUESubspace<V>> denseSubspaces)
Performs a MDL-based pruning of the specified dense subspaces as described in the CLIQUE algorithm.  | 
protected  Clustering<SubspaceModel<V>> | 
runInTime(Database<V> database)
Performs the CLIQUE algorithm on the given database.  | 
private  void | 
updateMinMax(V featureVector,
             double[] minima,
             double[] maxima)
Updates the minima and maxima array according to the specified feature vector.  | 
| Methods inherited from class de.lmu.ifi.dbs.elki.algorithm.AbstractAlgorithm | 
|---|
isTime, isVerbose, run, setTime, setVerbose | 
| Methods inherited from class de.lmu.ifi.dbs.elki.logging.AbstractLoggable | 
|---|
debugFine, debugFiner, debugFinest, exception, progress, verbose, warning | 
| Methods inherited from class java.lang.Object | 
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Methods inherited from interface de.lmu.ifi.dbs.elki.algorithm.clustering.ClusteringAlgorithm | 
|---|
run | 
| Methods inherited from interface de.lmu.ifi.dbs.elki.algorithm.Algorithm | 
|---|
setTime, setVerbose | 
| Field Detail | 
|---|
public static final OptionID XSI_ID
XSI_PARAM
private final IntParameter XSI_PARAM
 Key: -clique.xsi
 
private int xsi
XSI_PARAM.
public static final OptionID TAU_ID
TAU_PARAM
private final DoubleParameter TAU_PARAM
 Key: -clique.tau
 
private double tau
TAU_PARAM.
public static final OptionID PRUNE_ID
PRUNE_FLAG
private final Flag PRUNE_FLAG
 Key: -clique.prune
 
private boolean prune
PRUNE_FLAG.
| Constructor Detail | 
|---|
public CLIQUE(Parameterization config)
Parameterizable
config - Parameterization| Method Detail | 
|---|
protected Clustering<SubspaceModel<V>> runInTime(Database<V> database)
                                                                    throws IllegalStateException
runInTime in class AbstractAlgorithm<V extends NumberVector<V,?>,Clustering<SubspaceModel<V extends NumberVector<V,?>>>>database - the database to run the algorithm on
IllegalStateException - if the algorithm has not been initialized
         properly (e.g. the setParameters(String[]) method has been failed
         to be called).
private List<Pair<Subspace<V>,Set<Integer>>> determineClusters(Database<V> database,
                                                               List<CLIQUESubspace<V>> denseSubspaces)
database - the database to run the algorithm ondenseSubspaces - the dense subspaces in reverse order by their
        coverage
private List<CLIQUESubspace<V>> findOneDimensionalDenseSubspaces(Database<V> database)
database - the database to run the algorithm on
private List<CLIQUESubspace<V>> findDenseSubspaces(Database<V> database,
                                                   List<CLIQUESubspace<V>> denseSubspaces)
k-dimensional dense subspaces and performs a pruning
 if this option is chosen.
database - the database to run the algorithm ondenseSubspaces - the (k-1)-dimensional dense subspaces
k-dimensional dense subspaces sorted in
         reverse order by their coverageprivate Collection<CLIQUEUnit<V>> initOneDimensionalUnits(Database<V> database)
database - the database to run the algorithm on
private void updateMinMax(V featureVector,
                          double[] minima,
                          double[] maxima)
featureVector - the feature vectorminima - the array of minimamaxima - the array of maximaprivate List<CLIQUESubspace<V>> findOneDimensionalDenseSubspaceCandidates(Database<V> database)
database - the database to run the algorithm on
private List<CLIQUESubspace<V>> findDenseSubspaceCandidates(Database<V> database,
                                                            List<CLIQUESubspace<V>> denseSubspaces)
k-dimensional dense subspace candidates from the
 specified (k-1)-dimensional dense subspaces.
database - the database to run the algorithm ondenseSubspaces - the (k-1)-dimensional dense subspaces
k-dimensional dense subspace candidates
         reverse ordered by their coverageprivate List<CLIQUESubspace<V>> pruneDenseSubspaces(List<CLIQUESubspace<V>> denseSubspaces)
denseSubspaces - the subspaces to be pruned sorted in reverse order by
        their coverage
private int[][] computeMeans(List<CLIQUESubspace<V>> denseSubspaces)
denseSubspaces - the dense subspaces in reverse order by their
        coverage
private double[][] computeDiffs(List<CLIQUESubspace<V>> denseSubspaces,
                                int[] mi,
                                int[] mp)
denseSubspaces - denseSubspaces the dense subspaces in reverse order
        by their coveragemi - the mean of the selected sets Imp - the mean of the pruned sets P
  | 
  | 
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||||