Which algorithm is best for optimal data point clustering?