|
|
|||||||||||||||||||||
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.SUBCLU<V,D>
V
- the type of FeatureVector handled by this AlgorithmD
- the type of Distance used@Title(value="SUBCLU: Density connected Subspace Clustering") @Description(value="Algorithm to detect arbitrarily shaped and positioned clusters in subspaces. SUBCLU delivers for each subspace the same clusters DBSCAN would have found, when applied to this subspace seperately.") @Reference(authors="K. Kailing, H.-P. Kriegel, P. Kr\u00f6ger", title="Density connected Subspace Clustering for High Dimensional Data. ", booktitle="Proc. SIAM Int. Conf. on Data Mining (SDM\'04), Lake Buena Vista, FL, 2004") public class SUBCLU<V extends NumberVector<V,?>,D extends Distance<D>>
Implementation of the SUBCLU algorithm, an algorithm to detect arbitrarily shaped and positioned clusters in subspaces. SUBCLU delivers for each subspace the same clusters DBSCAN would have found, when applied to this subspace separately.
Reference:
K. Kailing, H.-P. Kriegel, P. Kroeger: Density connected Subspace Clustering
for High Dimensional Data.
In Proc. SIAM Int. Conf. on Data Mining (SDM'04), Lake Buena Vista, FL, 2004.
Field Summary | |
---|---|
static OptionID |
DISTANCE_FUNCTION_ID
OptionID for DISTANCE_FUNCTION_PARAM |
private ObjectParameter<AbstractDimensionsSelectingDoubleDistanceFunction<V>> |
DISTANCE_FUNCTION_PARAM
The distance function to determine the distance between database objects. |
private AbstractDimensionsSelectingDoubleDistanceFunction<V> |
distanceFunction
Holds the instance of the distance function specified by DISTANCE_FUNCTION_PARAM . |
private DoubleDistance |
epsilon
Holds the value of EPSILON_PARAM . |
static OptionID |
EPSILON_ID
OptionID for EPSILON_PARAM |
private DistanceParameter<DoubleDistance> |
EPSILON_PARAM
Parameter to specify the maximum radius of the neighborhood to be considered, must be suitable to AbstractDimensionsSelectingDoubleDistanceFunction . |
private int |
minpts
Holds the value of MINPTS_PARAM . |
static OptionID |
MINPTS_ID
OptionID for MINPTS_PARAM |
private IntParameter |
MINPTS_PARAM
Parameter to specify the threshold for minimum number of points in the epsilon-neighborhood of a point, must be an integer greater than 0. |
private Clustering<SubspaceModel<V>> |
result
Holds the result; |
Fields inherited from class de.lmu.ifi.dbs.elki.logging.AbstractLoggable |
---|
debug, logger |
Constructor Summary | |
---|---|
SUBCLU(Parameterization config)
Constructor, adhering to Parameterizable |
Method Summary | |
---|---|
private Subspace<V> |
bestSubspace(List<Subspace<V>> subspaces,
Subspace<V> candidate,
TreeMap<Subspace<V>,List<Cluster<Model>>> clusterMap)
Determines the d -dimensional subspace of the (d+1)
-dimensional candidate with minimal number of objects in the cluster. |
private List<Subspace<V>> |
generateSubspaceCandidates(List<Subspace<V>> subspaces)
Generates d+1 -dimensional subspace candidates from the specified
d -dimensional subspaces. |
Clustering<SubspaceModel<V>> |
getResult()
Returns the result of the algorithm. |
private List<Subspace<V>> |
lowerSubspaces(Subspace<V> subspace)
Returns the list of all (d-1) -dimensional subspaces of the
specified d -dimensional subspace. |
private List<Cluster<Model>> |
runDBSCAN(Database<V> database,
List<Integer> ids,
Subspace<V> subspace)
Runs the DBSCAN algorithm on the specified partition of the database in the given subspace. |
protected Clustering<SubspaceModel<V>> |
runInTime(Database<V> database)
Performs the SUBCLU algorithm on the given database. |
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 DISTANCE_FUNCTION_ID
DISTANCE_FUNCTION_PARAM
private final ObjectParameter<AbstractDimensionsSelectingDoubleDistanceFunction<V extends NumberVector<V,?>>> DISTANCE_FUNCTION_PARAM
Default value: DimensionsSelectingEuclideanDistanceFunction
Key: -subclu.distancefunction
private AbstractDimensionsSelectingDoubleDistanceFunction<V extends NumberVector<V,?>> distanceFunction
DISTANCE_FUNCTION_PARAM
.
public static final OptionID EPSILON_ID
EPSILON_PARAM
private final DistanceParameter<DoubleDistance> EPSILON_PARAM
AbstractDimensionsSelectingDoubleDistanceFunction
.
Key: -subclu.epsilon
private DoubleDistance epsilon
EPSILON_PARAM
.
public static final OptionID MINPTS_ID
MINPTS_PARAM
private final IntParameter MINPTS_PARAM
Key: -subclu.minpts
private int minpts
MINPTS_PARAM
.
private Clustering<SubspaceModel<V extends NumberVector<V,?>>> result
Constructor Detail |
---|
public SUBCLU(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).public Clustering<SubspaceModel<V>> getResult()
private List<Cluster<Model>> runDBSCAN(Database<V> database, List<Integer> ids, Subspace<V> subspace) throws ParameterException, UnableToComplyException
ids
is null DBSCAN will be applied to
the whole database.
database
- the database holding the objects to run DBSCAN onids
- the IDs of the database defining the partition to run DBSCAN on
- if this parameter is null DBSCAN will be applied to the whole
databasesubspace
- the subspace to run DBSCAN on
ParameterException
- in case of wrong parameter-setting
UnableToComplyException
- in case of problems during the creation of
the database partitionprivate List<Subspace<V>> generateSubspaceCandidates(List<Subspace<V>> subspaces)
d+1
-dimensional subspace candidates from the specified
d
-dimensional subspaces.
subspaces
- the d
-dimensional subspaces
d+1
-dimensional subspace candidatesprivate List<Subspace<V>> lowerSubspaces(Subspace<V> subspace)
(d-1)
-dimensional subspaces of the
specified d
-dimensional subspace.
subspace
- the d
-dimensional subspace
(d-1)
-dimensional subspacesprivate Subspace<V> bestSubspace(List<Subspace<V>> subspaces, Subspace<V> candidate, TreeMap<Subspace<V>,List<Cluster<Model>>> clusterMap)
d
-dimensional subspace of the (d+1)
-dimensional candidate with minimal number of objects in the cluster.
subspaces
- the list of d
-dimensional subspaces containing
clusterscandidate
- the (d+1)
-dimensional candidate subspaceclusterMap
- the mapping of subspaces to clusters
d
-dimensional subspace of the (d+1)
-dimensional candidate with minimal number of objects in the
cluster
|
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |