|
|
|||||||||||||||||||||
| 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<AxesModel>>
de.lmu.ifi.dbs.elki.algorithm.clustering.subspace.DiSH<V>
V - the type of Realvector handled by this Algorithmpublic class DiSH<V extends RealVector<V,?>>
Algorithm for detecting subspace hierarchies.
Reference:
E. Achtert, C. Böhm, H.-P. Kriegel, P. Kröger, I. Müller-Gorman, A. Zimek:
Detection and Visualization of Subspace Cluster Hierarchies.
In Proc. 12th International Conference on Database Systems for Advanced Applications (DASFAA), Bangkok, Thailand, 2007.
| Field Summary | |
|---|---|
private double |
epsilon
Holds the value of EPSILON_PARAM. |
static OptionID |
EPSILON_ID
OptionID for EPSILON_PARAM |
private DoubleParameter |
EPSILON_PARAM
Parameter that specifies the maximum radius of the neighborhood to be considered in each dimension for determination of the preference vector, must be a double equal to or greater than 0. |
static OptionID |
MU_ID
OptionID for MU_PARAM |
private IntParameter |
MU_PARAM
Parameter that specifies the a minimum number of points as a smoothing factor to avoid the single-link-effect, must be an integer greater than 0. |
private OPTICS<V,PreferenceVectorBasedCorrelationDistance> |
optics
The optics algorithm to determine the cluster order. |
private Clustering<AxesModel> |
result
Holds the result; |
| 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 | |
|---|---|
DiSH()
Provides the DiSH algorithm, adding parameters EPSILON_PARAM and MU_PARAM
to the option handler additionally to parameters of super class. |
|
| Method Summary | |
|---|---|
private void |
buildHierarchy(Database<V> database,
DiSHDistanceFunction<V,DiSHPreprocessor<V,?>> distanceFunction,
List<Cluster<AxesModel>> clusters,
int dimensionality)
Builds the cluster hierarchy |
private void |
checkClusters(Database<V> database,
DiSHDistanceFunction<V,DiSHPreprocessor<V,?>> distanceFunction,
Map<BitSet,List<Pair<BitSet,DatabaseObjectGroupCollection<List<Integer>>>>> clustersMap)
Removes the clusters with size < minpts from the cluster map and adds them to their parents. |
private void |
computeClusters(Database<V> database,
ClusterOrderResult<PreferenceVectorBasedCorrelationDistance> clusterOrder)
Computes the hierarchical clusters according to the cluster order. |
private Map<BitSet,List<Pair<BitSet,DatabaseObjectGroupCollection<List<Integer>>>>> |
extractClusters(Database<V> database,
DiSHDistanceFunction<V,DiSHPreprocessor<V,?>> distanceFunction,
ClusterOrderResult<PreferenceVectorBasedCorrelationDistance> clusterOrder)
Extracts the clusters from the cluster order. |
private Pair<BitSet,DatabaseObjectGroupCollection<List<Integer>>> |
findParent(Database<V> database,
DiSHDistanceFunction<V,DiSHPreprocessor<V,?>> distanceFunction,
Pair<BitSet,DatabaseObjectGroupCollection<List<Integer>>> child,
Map<BitSet,List<Pair<BitSet,DatabaseObjectGroupCollection<List<Integer>>>>> clustersMap)
Returns the parent of the specified cluster |
Description |
getDescription()
Returns a description of the algorithm. |
Clustering<AxesModel> |
getResult()
Returns the result of the algorithm. |
private boolean |
isParent(Database<V> database,
DiSHDistanceFunction<V,DiSHPreprocessor<V,?>> distanceFunction,
Cluster<AxesModel> parent,
List<Cluster<AxesModel>> children)
Returns true, if the specified parent cluster is a parent of one child of the children clusters. |
protected Clustering<AxesModel> |
runInTime(Database<V> database)
Performs the DiSH algorithm on the given database. |
List<String> |
setParameters(List<String> args)
Calls the super method and sets additionally the value of the parameters EPSILON_PARAM and MU_PARAM. |
private List<Cluster<AxesModel>> |
sortClusters(Map<BitSet,List<Pair<BitSet,DatabaseObjectGroupCollection<List<Integer>>>>> clustersMap,
int dimensionality)
Sets the levels and indices in the clusters and returns a sorted list of the clusters. |
| 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 EPSILON_ID
EPSILON_PARAM
private final DoubleParameter EPSILON_PARAM
Default value: 0.001
Key: -dish.epsilon
private double epsilon
EPSILON_PARAM.
public static final OptionID MU_ID
MU_PARAM
private final IntParameter MU_PARAM
Default value: 1
Key: -dish.mu
private OPTICS<V extends RealVector<V,?>,PreferenceVectorBasedCorrelationDistance> optics
private Clustering<AxesModel> result
| Constructor Detail |
|---|
public DiSH()
EPSILON_PARAM and MU_PARAM
to the option handler additionally to parameters of super class.
| Method Detail |
|---|
protected Clustering<AxesModel> runInTime(Database<V> database)
throws IllegalStateException
runInTime in class AbstractAlgorithm<V extends RealVector<V,?>,Clustering<AxesModel>>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 Clustering<AxesModel> getResult()
getResult in interface Algorithm<V extends RealVector<V,?>,Clustering<AxesModel>>getResult in interface ClusteringAlgorithm<Clustering<AxesModel>,V extends RealVector<V,?>>public Description getDescription()
Algorithm
getDescription in interface Algorithm<V extends RealVector<V,?>,Clustering<AxesModel>>
public List<String> setParameters(List<String> args)
throws ParameterException
EPSILON_PARAM and MU_PARAM.
Then the parameters for the algorithm optics are set.
setParameters in interface ParameterizablesetParameters in class AbstractAlgorithm<V extends RealVector<V,?>,Clustering<AxesModel>>args - parameters to set the attributes accordingly to
ParameterException - in case of wrong parameter-setting
private void computeClusters(Database<V> database,
ClusterOrderResult<PreferenceVectorBasedCorrelationDistance> clusterOrder)
database - the database holding the objectsclusterOrder - the cluster order
private Map<BitSet,List<Pair<BitSet,DatabaseObjectGroupCollection<List<Integer>>>>> extractClusters(Database<V> database,
DiSHDistanceFunction<V,DiSHPreprocessor<V,?>> distanceFunction,
ClusterOrderResult<PreferenceVectorBasedCorrelationDistance> clusterOrder)
database - the database storing the objectsdistanceFunction - the distance functionclusterOrder - the cluster order to extract the clusters from
private List<Cluster<AxesModel>> sortClusters(Map<BitSet,List<Pair<BitSet,DatabaseObjectGroupCollection<List<Integer>>>>> clustersMap,
int dimensionality)
clustersMap - the mapping of bits sets to clustersdimensionality - the dimensionality of the data
private void checkClusters(Database<V> database,
DiSHDistanceFunction<V,DiSHPreprocessor<V,?>> distanceFunction,
Map<BitSet,List<Pair<BitSet,DatabaseObjectGroupCollection<List<Integer>>>>> clustersMap)
database - the database storing the objectsdistanceFunction - the distance functionclustersMap - the map containing the clusters
private Pair<BitSet,DatabaseObjectGroupCollection<List<Integer>>> findParent(Database<V> database,
DiSHDistanceFunction<V,DiSHPreprocessor<V,?>> distanceFunction,
Pair<BitSet,DatabaseObjectGroupCollection<List<Integer>>> child,
Map<BitSet,List<Pair<BitSet,DatabaseObjectGroupCollection<List<Integer>>>>> clustersMap)
database - the database storing the objectsdistanceFunction - the distance functionchild - the child to search teh parent forclustersMap - the map containing the clusters
private void buildHierarchy(Database<V> database,
DiSHDistanceFunction<V,DiSHPreprocessor<V,?>> distanceFunction,
List<Cluster<AxesModel>> clusters,
int dimensionality)
distanceFunction - the distance functionclusters - the sorted list of clustersdimensionality - the dimensionality of the datadatabase - the database containing the data objects
private boolean isParent(Database<V> database,
DiSHDistanceFunction<V,DiSHPreprocessor<V,?>> distanceFunction,
Cluster<AxesModel> parent,
List<Cluster<AxesModel>> children)
database - the database containing the objectsdistanceFunction - the distance function for distance computation between the clustersparent - the parent to be testedchildren - the list of children to be tested
|
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||||