Hi, For machine learning centroid cluster algorithm, we often use is Calinsk-iHarabasz score to evaluate which algorithm or how many centers is best for a dataset. The python lib sklearn implements Calinsk-iHarabasz as sklearn.metrics.calinski_harabasz_score.
I think there should be a CalinskiHarabaszClusterEvaluator in commons math: ```java package org.apache.commons.math4.ml.clustering.evaluation; import org.apache.commons.math4.ml.clustering.Cluster; import org.apache.commons.math4.ml.clustering.Clusterable; import java.util.List; public class CalinskiHarabaszClusterEvaluator<T extends Clusterable> extends ClusterEvaluator<T> { @Override public double score(List<? extends Cluster<T>> clusters) { //TODO: Implement the Calinski-Harabasz Score algorithm return 0; } @Override public boolean isBetterScore(double score1, double score2) { return score1 > score2; } } ``` The code can be implemented by read the algorithm documents, or translate from python sklearn.metrics.calinski_harabasz_score.