diff --git a/src/mlpack/methods/kmeans/dtnn_kmeans_impl.hpp b/src/mlpack/methods/kmeans/dtnn_kmeans_impl.hpp index deb98d1964..d9d56f36ea 100644 --- a/src/mlpack/methods/kmeans/dtnn_kmeans_impl.hpp +++ b/src/mlpack/methods/kmeans/dtnn_kmeans_impl.hpp @@ -508,6 +508,16 @@ prunedPoints[index] << ", lastOwner " << lastOwners[index] << ": invalid " prunedCentroids.col(owner) += dataset.col(index); prunedCounts(owner)++; } + else if (upperBounds[index] + clusterDistances[owner] < 0.5 * + interclusterDistances[newFromOldCentroids[owner]]) + { + prunedPoints[index] = true; + upperBounds[index] += clusterDistances[owner]; + lastOwners[index] = owner; + lowerSecondBounds[index] -= clusterDistances[centroids.n_cols]; + prunedCentroids.col(owner) += dataset.col(index); + prunedCounts(owner)++; + } else { prunedPoints[index] = false;