diff --git a/elki-clustering/src/main/java/elki/clustering/kmeans/BetulaLloydKMeans.java b/elki-clustering/src/main/java/elki/clustering/kmeans/BetulaLloydKMeans.java index 919f99081b..6028a5e6a6 100644 --- a/elki-clustering/src/main/java/elki/clustering/kmeans/BetulaLloydKMeans.java +++ b/elki-clustering/src/main/java/elki/clustering/kmeans/BetulaLloydKMeans.java @@ -200,6 +200,7 @@ else if(storeIds) { private double[][] kmeans(ArrayList cfs, int[] assignment, int[] weights, CFTree tree) { double[][] means = initialization.chooseInitialMeans(tree, cfs, k); for(int i = 1; i <= maxiter || maxiter < 0; i++) { + Duration duration = LOG.newDuration(getClass().getName() + "." + i + ".time").begin(); long prevdiststat = diststat; means = i == 1 ? means : means(assignment, means, cfs, weights); if(i > 1 && LOG.isStatistics()) { @@ -209,6 +210,7 @@ private double[][] kmeans(ArrayList cfs, int[] assignm } int changed = assignToNearestCluster(assignment, means, cfs, weights); if(LOG.isStatistics()) { + LOG.statistics(duration.end()); LOG.statistics(new LongStatistic(getClass().getName() + "." + i + ".reassigned", changed)); if(diststat > prevdiststat) { LOG.statistics(new LongStatistic(getClass().getName() + "." + i + ".distance-computations", diststat - prevdiststat)); @@ -237,7 +239,7 @@ private double[][] means(int[] assignment, double[][] means, ArrayList