|
|
|||||||||||||||||||||
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.utilities.optionhandling.AbstractParameterizable
de.lmu.ifi.dbs.elki.algorithm.AbstractAlgorithm<V,Clustering<CLIQUESubspace<V>>>
de.lmu.ifi.dbs.elki.algorithm.clustering.subspace.CLIQUE<V>
V
- the type of RealVector handled by this Algorithmpublic class CLIQUE<V extends RealVector<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 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 Clustering<CLIQUESubspace<V>> |
result
The result of the algorithm; |
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.utilities.optionhandling.AbstractParameterizable |
---|
optionHandler |
Fields inherited from class de.lmu.ifi.dbs.elki.logging.AbstractLoggable |
---|
debug, logger |
Constructor Summary | |
---|---|
CLIQUE()
Provides the CLIQUE algorithm, adding parameters XSI_PARAM ,
TAU_PARAM , and flag PRUNE_FLAG to the option handler
additionally to parameters of super class. |
Method Summary | |
---|---|
private double[][] |
computeDiffs(SortedSet<CLIQUESubspace<V>> denseSubspaces,
int[] mi,
int[] mp)
The specified sorted set of dense subspaces is divided into the selected set I and the pruned set P. |
private int[][] |
computeMeans(SortedSet<CLIQUESubspace<V>> denseSubspaces)
The specified sorted set of dense subspaces is divided into the selected set I and the pruned set P. |
private Map<CLIQUESubspace<V>,Set<Integer>> |
determineClusters(Database<V> database,
SortedSet<CLIQUESubspace<V>> denseSubspaces)
Determines the clusters in the specified dense subspaces. |
private SortedSet<CLIQUESubspace<V>> |
findDenseSubspaceCandidates(Database<V> database,
Set<CLIQUESubspace<V>> denseSubspaces)
Determines the k-dimensional dense subspace candidates. |
private SortedSet<CLIQUESubspace<V>> |
findDenseSubspaces(Database<V> database,
SortedSet<CLIQUESubspace<V>> denseSubspaces)
Determines the k>1 dimensional dense subspaces and performs a pruning if this option is chosen. |
private SortedSet<CLIQUESubspace<V>> |
findOneDimensionalDenseSubspaceCandidates(Database<V> database)
Determines the one-dimensional dense subspace candidates by making a pass over the database. |
private SortedSet<CLIQUESubspace<V>> |
findOneDimensionalDenseSubspaces(Database<V> database)
Determines the one dimensional dense subspaces and performs a pruning if this option is chosen. |
Description |
getDescription()
Returns a description of the algorithm. |
Clustering<CLIQUESubspace<V>> |
getResult()
Returns the result of the algorithm. |
private Collection<CLIQUEUnit<V>> |
initOneDimensionalUnits(Database<V> database)
Initializes and returns the one dimensional units. |
private SortedSet<CLIQUESubspace<V>> |
pruneDenseSubspaces(SortedSet<CLIQUESubspace<V>> denseSubspaces)
Performs a MDL-based pruning of the specified dense sunspaces as described in the CLIQUE algorithm. |
protected Clustering<CLIQUESubspace<V>> |
runInTime(Database<V> database)
Performs the CLIQUE algorithm on the given database. |
List<String> |
setParameters(List<String> args)
Calls the super method and sets additionally the value of the parameters XSI_PARAM , TAU_PARAM , and {flag @link #PRUNE_FLAG}. |
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.utilities.optionhandling.AbstractParameterizable |
---|
addOption, addParameterizable, addParameterizable, checkGlobalParameterConstraints, collectOptions, getAttributeSettings, getParameters, rememberParametersExcept, removeOption, removeParameterizable, shortDescription |
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 |
Methods inherited from interface de.lmu.ifi.dbs.elki.utilities.optionhandling.Parameterizable |
---|
checkGlobalParameterConstraints, collectOptions, getParameters, shortDescription |
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
.
private Clustering<CLIQUESubspace<V extends RealVector<V,?>>> result
Constructor Detail |
---|
public CLIQUE()
XSI_PARAM
,
TAU_PARAM
, and flag PRUNE_FLAG
to the option handler
additionally to parameters of super class.
Method Detail |
---|
public Clustering<CLIQUESubspace<V>> getResult()
getResult
in interface Algorithm<V extends RealVector<V,?>,Clustering<CLIQUESubspace<V extends RealVector<V,?>>>>
getResult
in interface ClusteringAlgorithm<Clustering<CLIQUESubspace<V extends RealVector<V,?>>>,V extends RealVector<V,?>>
public Description getDescription()
getDescription
in interface Algorithm<V extends RealVector<V,?>,Clustering<CLIQUESubspace<V extends RealVector<V,?>>>>
protected Clustering<CLIQUESubspace<V>> runInTime(Database<V> database) throws IllegalStateException
runInTime
in class AbstractAlgorithm<V extends RealVector<V,?>,Clustering<CLIQUESubspace<V extends RealVector<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).public List<String> setParameters(List<String> args) throws ParameterException
XSI_PARAM
, TAU_PARAM
, and {flag @link #PRUNE_FLAG}.
setParameters
in interface Parameterizable
setParameters
in class AbstractAlgorithm<V extends RealVector<V,?>,Clustering<CLIQUESubspace<V extends RealVector<V,?>>>>
args
- parameters to set the attributes accordingly to
ParameterException
- in case of wrong parameter-settingprivate Map<CLIQUESubspace<V>,Set<Integer>> determineClusters(Database<V> database, SortedSet<CLIQUESubspace<V>> denseSubspaces)
database
- the database to run the algorithm ondenseSubspaces
- the dense subspaces
private SortedSet<CLIQUESubspace<V>> findOneDimensionalDenseSubspaces(Database<V> database)
database
- the database to run the algorithm on
private SortedSet<CLIQUESubspace<V>> findDenseSubspaces(Database<V> database, SortedSet<CLIQUESubspace<V>> denseSubspaces)
database
- the database to run the algorithm ondenseSubspaces
- the (k-1)-dimensional dense subspaces
private 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 SortedSet<CLIQUESubspace<V>> findOneDimensionalDenseSubspaceCandidates(Database<V> database)
database
- the database to run the algorithm on
private SortedSet<CLIQUESubspace<V>> findDenseSubspaceCandidates(Database<V> database, Set<CLIQUESubspace<V>> denseSubspaces)
database
- the database to run the algorithm ondenseSubspaces
- the (k-1)-dimensional dense subspace
private SortedSet<CLIQUESubspace<V>> pruneDenseSubspaces(SortedSet<CLIQUESubspace<V>> denseSubspaces)
denseSubspaces
- the subspaces to be pruned
private int[][] computeMeans(SortedSet<CLIQUESubspace<V>> denseSubspaces)
denseSubspaces
- the dense subspaces
private double[][] computeDiffs(SortedSet<CLIQUESubspace<V>> denseSubspaces, int[] mi, int[] mp)
denseSubspaces
- the dense subspacesmi
- 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 |