|
|
|||||||||||||||||||||
| 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<Model>>
de.lmu.ifi.dbs.elki.algorithm.clustering.subspace.ProjectedClustering<V>
de.lmu.ifi.dbs.elki.algorithm.clustering.correlation.ORCLUS<V>
V - the type of Realvector handled by this Algorithmpublic class ORCLUS<V extends RealVector<V,?>>
ORCLUS provides the ORCLUS algorithm, an algorithm to find clusters in high dimensional spaces.
Reference: C. C. Aggrawal, P. S. Yu:
Finding Generalized Projected Clusters in High Dimensional Spaces.
In: Proc. ACM SIGMOD Int. Conf. on Management of Data (SIGMOD '00).
| Nested Class Summary | |
|---|---|
private class |
ORCLUS.ORCLUSCluster
Encapsulates the attributes of a cluster. |
private class |
ORCLUS.ProjectedEnergy
Encapsulates the projected energy for a cluster. |
| Field Summary | |
|---|---|
private double |
alpha
Holds the value of ALPHA_PARAM. |
static OptionID |
ALPHA_ID
OptionID for ALPHA_PARAM. |
private DoubleParameter |
ALPHA_PARAM
Parameter to specify the factor for reducing the number of current clusters in each iteration, must be an integer greater than 0 and less than 1. |
private PCARunner<V,DoubleDistance> |
pca
The PCA utility object. |
| Fields inherited from class de.lmu.ifi.dbs.elki.algorithm.clustering.subspace.ProjectedClustering |
|---|
K_I_ID, K_ID, L_ID |
| 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 | |
|---|---|
ORCLUS()
Provides the ORCLUS algorithm, adding parameter ALPHA_PARAM to the
option handler additionally to parameters of super class. |
|
| Method Summary | |
|---|---|
private void |
assign(Database<V> database,
List<ORCLUS.ORCLUSCluster> clusters)
Creates a partitioning of the database by assigning each object to its closest seed. |
private Matrix |
findBasis(Database<V> database,
ORCLUS.ORCLUSCluster cluster,
int dim)
Finds the basis of the subspace of dimensionality dim for
the specified cluster. |
Description |
getDescription()
Returns a description of the algorithm. |
private List<ORCLUS.ORCLUSCluster> |
initialSeeds(Database<V> database,
int k)
Initializes the list of seeds wit a random sample of size k. |
private void |
merge(Database<V> database,
List<ORCLUS.ORCLUSCluster> clusters,
int k_new,
int d_new)
Reduces the number of seeds to k_new |
private ORCLUS.ProjectedEnergy |
projectedEnergy(Database<V> database,
ORCLUS.ORCLUSCluster c_i,
ORCLUS.ORCLUSCluster c_j,
int i,
int j,
int dim)
Computes the projected energy of the specified clusters. |
private V |
projection(ORCLUS.ORCLUSCluster c,
V o)
Returns the projection of real vector o in the subspace of cluster c. |
protected Clustering<Model> |
runInTime(Database<V> database)
Performs the ORCLUS algorithm on the given database. |
List<String> |
setParameters(List<String> args)
Calls the super method and sets additionally the value of the parameter ALPHA_PARAM. |
private ORCLUS.ORCLUSCluster |
union(Database<V> database,
ORCLUS.ORCLUSCluster c1,
ORCLUS.ORCLUSCluster c2,
int dim)
Returns the union of the two specified clusters. |
| Methods inherited from class de.lmu.ifi.dbs.elki.algorithm.clustering.subspace.ProjectedClustering |
|---|
getDistanceFunction, getK_i, getK, getL, getResult, setResult |
| 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 ALPHA_ID
ALPHA_PARAM.
private final DoubleParameter ALPHA_PARAM
Default value: 0.5
Key: -orclus.alpha
private double alpha
ALPHA_PARAM.
private PCARunner<V extends RealVector<V,?>,DoubleDistance> pca
| Constructor Detail |
|---|
public ORCLUS()
ALPHA_PARAM to the
option handler additionally to parameters of super class.
| Method Detail |
|---|
protected Clustering<Model> runInTime(Database<V> database)
throws IllegalStateException
runInTime in class AbstractAlgorithm<V extends RealVector<V,?>,Clustering<Model>>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 Description getDescription()
Algorithm
public List<String> setParameters(List<String> args)
throws ParameterException
ALPHA_PARAM.
setParameters in interface ParameterizablesetParameters in class ProjectedClustering<V extends RealVector<V,?>>args - parameters to set the attributes accordingly to
ParameterException - in case of wrong parameter-setting
private List<ORCLUS.ORCLUSCluster> initialSeeds(Database<V> database,
int k)
database - the database holding the objectsk - the size of the random sample
private void assign(Database<V> database,
List<ORCLUS.ORCLUSCluster> clusters)
database - the database holding the objectsclusters - the array of clusters to which the objects should be
assigned to
private Matrix findBasis(Database<V> database,
ORCLUS.ORCLUSCluster cluster,
int dim)
dim for
the specified cluster.
database - the database to run the algorithm oncluster - the clusterdim - the dimensionality of the subspace
private void merge(Database<V> database,
List<ORCLUS.ORCLUSCluster> clusters,
int k_new,
int d_new)
database - the database holding the objectsclusters - the set of current seedsk_new - the new number of seedsd_new - the new dimensionality of the subspaces for each seed
private ORCLUS.ProjectedEnergy projectedEnergy(Database<V> database,
ORCLUS.ORCLUSCluster c_i,
ORCLUS.ORCLUSCluster c_j,
int i,
int j,
int dim)
database - the database holding the objectsc_i - the first clusterc_j - the second clusteri - the index of cluster c_i in the cluster listj - the index of cluster c_j in the cluster listdim - the dimensionality of the clusters
private ORCLUS.ORCLUSCluster union(Database<V> database,
ORCLUS.ORCLUSCluster c1,
ORCLUS.ORCLUSCluster c2,
int dim)
database - the database holding the objectsc1 - the first clusterc2 - the second clusterdim - the dimensionality of the union cluster
private V projection(ORCLUS.ORCLUSCluster c,
V o)
c - the clustero - the double vector
|
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||||