I'm looking for a clustering algorithm (ideally density based) that allows me to specify the maximum number of clusters (but not the exact number). All points must be assigned to a cluster, so I can't just ignore the smallest/least dense clusters.
Can anyone suggest an algorithm that may be suitable for this for this purpose, or think of a way of adapting an existing algorithm?
DbScan and variants are not appropriate, as they have no way of limiting the number of clusters. They also wont classify every point.
K-Means requires the exact value of k to be specified, and also is not density based, so works poorly with my data.