Вывод кода:

м, я сделал кластеризацию на моем наборе данных и у меня есть 10 кластеров. Эти кластеры не перекрываются. Но теперь предположим, что я изменил какую-то функцию во всех моих точках данных и снова делаю кластеризацию. Теперь у меня есть еще 10 кластеров. Если я повторю это, скажем еще 3 раза, в конце у меня будет 50 кластеров. Каждый кластер имеет связанный с ним счет, который рассчитывается на основе составляющих его точек данных.

Эти 50 кластеров теперь имеют перекрывающиеся точки данных. Я хочу выбрать все возможные непересекающиеся кластеры из этих 50 кластеров, но с наибольшим общим счетом.

Одним из способов является жадный метод, в котором я сортирую кластеры по количеству баллов от наибольшего к наименьшему. Затем выберите кластер с наивысшей оценкой. Затем продолжайте выбирать кластеры, которые имеют непересекающиеся точки данных с уже выбранными кластерами. Но это не кажется оптимальным решением, хотя это быстро.

Пример: скажем, у меня есть 5 кластеров со следующими оценками:

C1 = (A, B, C, D, E, F) Оценка = 10

C2 = (A, B, C) Оценка = 6

C3 = (D, E, F) Оценка = 6

C4 = (G, H, I, J) Счет = 5

C5 = (K, L) Оценка = 7

Жадный подход вернет {C1, C4, C5} с общим счетом 10 + 5 + 7 = 22, тогда как лучший вариант - {C2, C3, C4, C5} с общим счетом 6 + 6 + 5 + 7 = 24.

Я ищу другой метод, который может дать оптимальное решение или лучшее решение, чем вышеупомянутый жадный подход.

Ответы на вопрос(1)

Ваш ответ на вопрос