У меня такое же впечатление, как у @Anony-Mousse, на самом деле: вы еще не поняли свою проблему и требования.
Если вы хотите, чтобы размеры вашего кластера были k
, нет никаких сомнений в том, сколько кластеров вы получите: это, очевидно, n /k
. Таким образом, вы можете попробовать использовать вариант k-средних, который создает кластеры того же размера, что и, например. описано в этом руководстве: Учебное пособие по k-средним одинакового размера и установите желаемое количество кластеров на n/k
.
Обратите внимание, что это не особенно разумный или хороший алгоритм кластеризации. Он что-то делает для удовлетворения ограничений, но кластеры не очень значимы с точки зрения кластерного анализа. Это удовлетворение ограничений, но не кластерный анализ.
Чтобы также удовлетворить ваше ограничение эпсилон, вы можете начать с этого начального решения (которое, вероятно, является тем, что @Anony-Mousse назвал «очевидными подходами») и попытаться выполнить тот же тип оптимизации путем замены элементов. чтобы удовлетворить условию эпсилон.
Вам может понадобиться несколько перезапусков, потому что решения может не быть.
Смотрите также:
Группировать n точек в k кластеров одинакового размера
Вариация алгоритма K-средних с одинаковым размером кластера
по существу избыточные вопросы.
person
Erich Schubert
schedule
16.02.2013