|
|
|||||||||||||||||||||
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>
de.lmu.ifi.dbs.elki.algorithm.clustering.EM<V>
V
- a type of RealVector
as a suitable datatype for this algorithmpublic class EM<V extends RealVector<V,?>>
Provides the EM algorithm (clustering by expectation maximization).
Initialization is implemented as random initialization of means (uniformly distributed within the attribute ranges of the given database) and initial zero-covariance and variance=1 in covariance matrices.
Field Summary | |
---|---|
private double |
delta
Keeps delta - a small value as termination criterion in expectation maximization |
private DoubleParameter |
DELTA_PARAM
Parameter to specify the termination criterion for maximization of E(M): E(M) - E(M') < em.delta, must be a double equal to or greater than 0. |
private int |
k
Keeps k - the number of clusters to find. |
private IntParameter |
K_PARAM
Parameter to specify the number of clusters to find, must be an integer greater than 0. |
private EMClusters<V> |
result
Keeps the result. |
private static double |
SINGULARITY_CHEAT
Small value to increment diagonally of a matrix in order to avoid singularity befor building the inverse. |
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 |
Constructor Summary | |
---|---|
EM()
Provides the EM algorithm (clustering by expectation maximization). |
Method Summary | |
---|---|
protected void |
assignProbabilitiesToInstances(Database<V> database,
List<Double> normDistrFactor,
List<V> means,
List<Matrix> invCovMatr,
List<Double> clusterWeights)
Assigns the current probability values to the instances in the database. |
protected double |
expectationOfMixture(Database<V> database)
The expectation value of the current mixture of distributions. |
Description |
getDescription()
Returns a description of the algorithm. |
Clusters<V> |
getResult()
Returns the result of the algorithm. |
protected List<V> |
initialMeans(Database<V> database)
Creates k random points distributed uniformly within the
attribute ranges of the given database. |
protected void |
runInTime(Database<V> database)
Performs the EM clustering algorithm on the given database. |
String[] |
setParameters(String[] args)
Sets parameters k and delta . |
Methods inherited from class de.lmu.ifi.dbs.elki.algorithm.AbstractAlgorithm |
---|
description, isTime, isVerbose, run, setTime, setVerbose |
Methods inherited from class de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizable |
---|
addOption, checkGlobalParameterConstraints, deleteOption, description, description, getAttributeSettings, getParameters, getParameterValue, getPossibleOptions, inlineDescription, isSet, setParameters |
Methods inherited from class de.lmu.ifi.dbs.elki.logging.AbstractLoggable |
---|
debugFine, debugFiner, debugFinest, exception, message, progress, progress, progress, verbose, 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.Algorithm |
---|
run, setTime, setVerbose |
Methods inherited from interface de.lmu.ifi.dbs.elki.utilities.optionhandling.Parameterizable |
---|
checkGlobalParameterConstraints, description, getAttributeSettings, getParameters, getPossibleOptions, inlineDescription |
Field Detail |
---|
private static final double SINGULARITY_CHEAT
private final IntParameter K_PARAM
Key: -em.k
private final DoubleParameter DELTA_PARAM
Default value: 0.0
Key: -em.delta
private int k
private double delta
private EMClusters<V extends RealVector<V,?>> result
Constructor Detail |
---|
public EM()
Method Detail |
---|
protected void runInTime(Database<V> database) throws IllegalStateException
runInTime
in class AbstractAlgorithm<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).AbstractAlgorithm.runInTime(de.lmu.ifi.dbs.elki.database.Database)
protected void assignProbabilitiesToInstances(Database<V> database, List<Double> normDistrFactor, List<V> means, List<Matrix> invCovMatr, List<Double> clusterWeights)
database
- the database used for assignment to instancesnormDistrFactor
- normalization factor for density function, based on current covariance matrixmeans
- the current meansinvCovMatr
- the inverse covariance matricesclusterWeights
- the weights of the current clustersprotected double expectationOfMixture(Database<V> database)
database
- the database where the prior probability of each instance is associated
protected List<V> initialMeans(Database<V> database)
k
random points distributed uniformly within the
attribute ranges of the given database.
database
- the database must contain enough points in order to
ascertain the range of attribute values. Less than two points
would make no sense. The content of the database is not touched
otherwise.
k
random points distributed uniformly within
the attribute ranges of the given databasepublic Description getDescription()
Algorithm
getDescription
in interface Algorithm<V extends RealVector<V,?>>
Algorithm.getDescription()
public Clusters<V> getResult()
Algorithm
getResult
in interface Algorithm<V extends RealVector<V,?>>
getResult
in interface Clustering<V extends RealVector<V,?>>
Algorithm.getResult()
public String[] setParameters(String[] args) throws ParameterException
k
and delta
.
setParameters
in interface Parameterizable
setParameters
in class AbstractAlgorithm<V extends RealVector<V,?>>
args
- parameters to set the attributes accordingly to
ParameterException
- in case of wrong parameter-settingParameterizable.setParameters(String[])
|
|
||||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |