Kluster: an efficient scalable procedure for approximating the number of clusters in unsupervised learning