Cluster analysis methods expose hidden structure in datasets, revealing groups of subjects by their similarities. We have developed two model-based hierarchical clustering algorithms: 1. divisive, starting with one cluster and splitting clusters at each step, and 2. agglomerative, merging clusters at each step. Both guide the number of clusters using underlying probabilistic assumptions. Our algorithms outperform many existing clustering methods on simulated and benchmark data. We apply our methods to identify subpopulations in Parkinson’s disease.