Essential unsupervised algorithms