The Shogun library contains implementations of the model-based, hierarchical, and partition-based clustering approaches. The model-based algorithm is called GMM (Gaussian Mixture Models), the partition one is the k-means algorithm, and hierarchical clustering is based on the bottom-up method.
Examples of using the Shogun library for dealing with the clustering task samples
GMM with Shogun
The GMM algorithm assumes that clusters can be fit to some Gaussian (normal) distributions; it uses the EM approach for training. There is a CGMM class in the Shogun library that implements this algorithm, as illustrated in the following code snippet:
Some<CDenseFeatures<DataType>> features;
int num_clusters = 2;
...