|
|
|||||||||||||||||||||
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
- ParameterizationMethod 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 |