Package elki.clustering.kmeans.quality
Class BayesianInformationCriterionXMeans
- java.lang.Object
-
- elki.clustering.kmeans.quality.AbstractKMeansQualityMeasure<NumberVector>
-
- elki.clustering.kmeans.quality.BayesianInformationCriterionXMeans
-
- All Implemented Interfaces:
KMeansQualityMeasure<NumberVector>
@Title("Bayesian Information Criterion (X-means Version)") @Reference(authors="D. Pelleg, A. Moore", title="X-means: Extending K-means with Efficient Estimation on the Number of Clusters", booktitle="Proc. 17th Int. Conf. on Machine Learning (ICML 2000)", url="http://www.pelleg.org/shared/hp/download/xmeans.ps", bibkey="DBLP:conf/icml/PellegM00") public class BayesianInformationCriterionXMeans extends AbstractKMeansQualityMeasure<NumberVector>
Bayesian Information Criterion (BIC), also known as Schwarz criterion (SBC, SBIC) for the use with evaluating k-means results.This version tries to be close to the version used in X-means, although people have argued that there are errors in this formulation.
Reference:
D. Pelleg, A. Moore:
X-means: Extending K-means with Efficient Estimation on the Number of Clusters
Proc. 17th Int. Conf. on Machine Learning (ICML 2000)- Since:
- 0.7.0
- Author:
- Tibor Goldschwendt, Erich Schubert
-
-
Constructor Summary
Constructors Constructor Description BayesianInformationCriterionXMeans()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
isBetter(double currentCost, double bestCost)
Compare two scores.static double
logLikelihoodXMeans(Relation<? extends NumberVector> relation, Clustering<? extends MeanModel> clustering, NumberVectorDistance<?> distance)
Computes log likelihood of an entire clustering.<V extends NumberVector>
doublequality(Clustering<? extends MeanModel> clustering, NumberVectorDistance<? super V> distance, Relation<V> relation)
Calculates and returns the quality measure.-
Methods inherited from class elki.clustering.kmeans.quality.AbstractKMeansQualityMeasure
logLikelihood, numberOfFreeParameters, numPoints, varianceContributionOfCluster
-
-
-
-
Method Detail
-
quality
public <V extends NumberVector> double quality(Clustering<? extends MeanModel> clustering, NumberVectorDistance<? super V> distance, Relation<V> relation)
Description copied from interface:KMeansQualityMeasure
Calculates and returns the quality measure.- Type Parameters:
V
- Actual vector type (could be a subtype of O!)- Parameters:
clustering
- Clustering to analyzedistance
- Distance function to use (usually Euclidean or squared Euclidean!)relation
- Relation for accessing objects- Returns:
- quality measure
-
logLikelihoodXMeans
public static double logLikelihoodXMeans(Relation<? extends NumberVector> relation, Clustering<? extends MeanModel> clustering, NumberVectorDistance<?> distance)
Computes log likelihood of an entire clustering.Version as used in the X-means publication.
- Parameters:
relation
- Data relationclustering
- Clusteringdistance
- Distance function- Returns:
- Log Likelihood.
-
isBetter
public boolean isBetter(double currentCost, double bestCost)
Description copied from interface:KMeansQualityMeasure
Compare two scores.- Parameters:
currentCost
- New (candiate) cost/scorebestCost
- Existing best cost/score (may beNaN
)- Returns:
true
when the new score is better, or the old score isNaN
.
-
-