Package elki.clustering.em
Class BetulaGMMWeighted
- java.lang.Object
-
- elki.clustering.em.BetulaGMM
-
- elki.clustering.em.BetulaGMMWeighted
-
- All Implemented Interfaces:
Algorithm
,ClusteringAlgorithm<Clustering<EMModel>>
@Priority(-100) @Reference(authors="Andreas Lang and Erich Schubert", title="BETULA: Fast Clustering of Large Data with Improved BIRCH CF-Trees", booktitle="Information Systems", url="https://doi.org/10.1016/j.is.2021.101918", bibkey="DBLP:journals/is/LangS22") public class BetulaGMMWeighted extends BetulaGMM
Clustering by expectation maximization (EM-Algorithm), also known as Gaussian Mixture Modeling (GMM), with optional MAP regularization. This version performs a more complex weighting based on the overlap of Gaussians – this is more expensive, and experimentally did not produce much better results thanBetulaGMM
.Reference:
Andreas Lang and Erich Schubert
BETULA: Fast Clustering of Large Data with Improved BIRCH CF-Trees
Information Systems- Since:
- 0.8.0
- Author:
- Andreas Lang
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
BetulaGMMWeighted.Par
Parameterizer-
Nested classes/interfaces inherited from interface elki.Algorithm
Algorithm.Utils
-
-
Field Summary
-
Fields inherited from class elki.clustering.em.BetulaGMM
cffactory, initializer, k, maxiter, MIN_LOGLIKELIHOOD, SOFT_TYPE
-
-
Constructor Summary
Constructors Constructor Description BetulaGMMWeighted(CFTree.Factory<?> cffactory, double delta, int k, int maxiter, boolean soft, BetulaClusterModelFactory<?> initialization, double prior)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description double
assignProbabilitiesToInstances(java.util.ArrayList<? extends ClusterFeature> cfs, java.util.List<? extends BetulaClusterModel> models, java.util.Map<ClusterFeature,double[]> probClusterIGivenX)
Assigns the current probability values to the instances in the database and compute the expectation value of the current mixture of distributions.-
Methods inherited from class elki.clustering.em.BetulaGMM
assignProbabilitiesToInstances, getInputTypeRestriction, recomputeCovarianceMatrices, run
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface elki.clustering.ClusteringAlgorithm
autorun
-
-
-
-
Constructor Detail
-
BetulaGMMWeighted
public BetulaGMMWeighted(CFTree.Factory<?> cffactory, double delta, int k, int maxiter, boolean soft, BetulaClusterModelFactory<?> initialization, double prior)
Constructor.- Parameters:
cffactory
- CFTree factoryk
- Number of clustersmaxiter
- Maximum number of iterationsinitialization
- Initialization methodprior
- MAP prior
-
-
Method Detail
-
assignProbabilitiesToInstances
public double assignProbabilitiesToInstances(java.util.ArrayList<? extends ClusterFeature> cfs, java.util.List<? extends BetulaClusterModel> models, java.util.Map<ClusterFeature,double[]> probClusterIGivenX)
Description copied from class:BetulaGMM
Assigns the current probability values to the instances in the database and compute the expectation value of the current mixture of distributions.Computed as the sum of the logarithms of the prior probability of each instance.
- Overrides:
assignProbabilitiesToInstances
in classBetulaGMM
- Parameters:
cfs
- the cluster features to evaluatemodels
- Cluster modelsprobClusterIGivenX
- Output storage for cluster probabilities- Returns:
- the expectation value of the current mixture of distributions
-
-