Некоторые методы (например, HDBSCAN от non-sklearn: https://hdbscan.readthedocs.io/en/latest/parameter_selection.html) имеют такие параметры, как minimal_cluster_size. Вероятно, min_samples для DBSCAN в sklearn будут работать аналогичным образом. Это не даст вам точные «сбалансированные» кластеры, но может помочь.
Но, на мой взгляд, иногда разумнее запускать алгоритмы кластеризации с разными параметрами и выбирать «более сбалансированный» вывод своими руками. В этом случае вы можете увидеть, какие точки не являются разделяемыми, и, возможно, добавить больше данных.(например, рассчитать дополнительную матрицу расстояний) или изменить целевую метрику.
Почему мы можем указать число в кластере?
Поскольку задачи 'находят кластеры' и 'сбалансировать их »в большинстве случаев немного противоположны по своему значению. Я даже не говорю об алгоритмах, когда нужно указать количество кластеров.