Easy clustering evaluation in MATLAB.
Copyright (c) 2015 Taehoon Lee
Input arguments are two clustering results and metric name.
clustereval(a, b, 'metric name')
X = rand(100, 2);
Z = linkage(X, 'average', 'euclidean');
a = cluster(Z, 'maxclust', 4);
b = kmeans(X, 4);
clustereval(a, b, 'ari') % adjusted Rand index
ri
: the Rand Index- Rand, "Objective Criteria for the Evaluation of Clustering Methods", JASA, 1971.
mi
: the Mirkin indexhi
: the Hubert indexari
: adjusted Rand index- Hubert and Arabie, "Comparing partitions", Journal of Classification, 1985.
fowlkes
: the Fowlkes-Mallows index- Fowlkes and Mallows, "A Method for Comparing Two Hierarchical Clustering", JASA, 1983.
chi
: Pearson's chi-square test- Chernoff and Lehmann, "The Use of Maximum Likelihood Estimates in \chi^2 Tests for Goodness of Fit", AMS, 1954.
cramer
: Cramer's coefficienttchouproff
: Tchouproff's coefficientmoc
: the Measure of Concordance- Pfitzner et al., "Characterization and evaluation of similaritymeasures for pairs of clusterings", KIS, 2009.
nmi
: Normalized Mutual Index- Strehl and Ghosh, "Cluster ensembles - a knowledge reuse framework for combining multiple partitions", JMLR, 2002.