Методы инициализации кластеризации K-средних


11

Меня интересует текущее состояние дел с выбором исходных семян (кластерных центров) для K-средних.

Поиск в Google приводит к двум популярным вариантам:

  1. случайный отбор начальных семян, и,
  2. с использованием техники отбора KMeans ++: Arthur & Vassilvitskii 2006 k-means ++: Преимущества тщательного посева

Есть ли еще какие-нибудь многообещающие методы, о которых кто-либо здесь знает, которые могут быть не такими популярными?

Ответы:


12

Позвольте мне, не заходя далеко, просто скопировать и вставить список опций из моей собственной функции !kmini(макрос для SPSS), найденный в коллекции «Кластеризация» здесь .

Способ создания или выбора начальных кластерных центров. Выбирать:

  • RGC - центроиды случайных подвыборок . Данные разбиты случайным образом по kнеперекрывающимся значениям, по членству, группам и центроидам этих групп назначаются начальные центры. Таким образом, центры рассчитываются, а не выбираются из существующих случаев набора данных. Этот метод позволяет получить центры, которые расположены близко друг к другу и к общему центроиду данных.
  • RP - случайно выбранные точки . kотдельные случаи данных случайным образом выбираются в качестве начальных центров.
  • RUNFP - самые дальние точки ( текущий выбор). Первые kслучаи берутся за центры, а затем во время прогона остальных случаев набора данных постепенно производятся замены между центрами; Целью замен является получение в конечных kточках, наиболее удаленных друг от друга, в переменном пространстве. Эти точки (случаи), занимающие периферийные позиции в облаке данных, являются произведенными начальными центрами. (Этот метод используется по умолчанию в процедуре k-средних QUICK CLUSTERSPSS. Подробности см. В разделе Алгоритмы SPSS. См. Также описание здесь ).
  • SIMFP - самые дальние точки (простой выбор). Первый центр выбран как случайный случай из набора данных. 2-й центр выбирается как случай, максимально удаленный от этого центра. 3-й центр выбирается как случай, максимально удаленный от этих двух (от ближайшего из двух), и так далее.
  • KMPP - случайные дальние точки, или k-означает ++. Первый центр выбран как случайный случай из набора данных. Второй центр также выбирается случайным образом, но вероятность выбора случая пропорциональна расстоянию (квадратному евклидову) от него до этого (первого) центра. 3-й центр также выбирается случайным образом с вероятностью выбора, пропорциональной расстоянию случая до ближайшего из этих двух центров, и так далее. (Артур Д., Васильвицкий С.С. K-средства ++: преимущества тщательного посева. // Материалы 18-го ежегодного симпозиума ACM-SIAM по дискретным алгоритмам. 2007. 1027–1035.)
  • GREP - представитель группы точек . Идея метода - собирать как центрыkНаиболее представительные, «депутатские» дела. 1-й центр берется как случай, ближайший к общему центроиду данных. Затем остальные центры выбираются из точек данных таким образом, чтобы каждая точка рассматривалась на предмет того, находится ли она ближе (и на сколько в квадрате евклидова расстояния) к набору точек, чем каждая из последних в любой из уже существующих центров. Т.е. каждая точка рассматривается как кандидат для представления некоторой группы точек, еще недостаточно хорошо представленных уже собранными центрами. Точка, наиболее представительная в этом отношении, выбрана следующим центром. (Кауфман, Л. Руссеув, П. Дж. Поиск групп в данных: введение в кластерный анализ., 1990. См. Также: Пена, Дж. М. и др. Эмпирическое сравнение четырех методов инициализации для алгоритма K-средних // Распознавание образов Lett. 20 (10), 1999,
  • [Существует также хороший метод, еще не реализованный мной в макросе, для генерации kточек, которые являются случайными, но «менее случайными, чем случайные», где-то между случайностью и жадностью; увидеть потенциальную теоретическую основу для этого метода]
  • Еще один метод - иерархическая кластеризация по методу Уорда. Вы можете сделать это на подвыборке объектов, если выборка слишком велика. Тогда средства произведенных им kкластеров являются исходными семенами для процедуры k-средних. Ward's предпочтительнее, чем другие методы иерархической кластеризации, потому что он разделяет общую целевую цель с k-means.

Методы RGC, RP, SIMFP, KMPP зависят от случайных чисел и могут изменять их результат от прогона к прогону.

Метод RUNFP может быть чувствителен к порядку регистра в наборе данных; но метод GREP - нет (кроме случаев, когда в данных много идентичных случаев, связей). Метод GREP может не собрать все kцентры, если kон велик относительно количества наблюдений в данных ( n), особенно когда k>n/2. [Макрос сообщит, если данные не позволяют этому методу собирать kцентры]. Метод GREP является самым медленным, он вычисляет [в моей реализации] матрицу расстояний между всеми случаями, поэтому он не подойдет, если существует много десятков тысяч или миллионов случаев. Вы можете, однако, сделать это на случайной выборке данных.

В настоящее время я не обсуждаю, какой метод «лучше» и при каких обстоятельствах, потому что я до сих пор не провел обширного имитационного исследования вопроса. Мои предварительные и поверхностные впечатления заключались в том, что GREP является особенно достойным (но дорогостоящим), и что если вы хотите действительно дешевый метод, который все еще достаточно конкурентоспособен, то случайные k баллов, RP, являются достойным выбором.


см. также ответ stats.stackexchange.com/a/350191/3277
ttnphns

Я был бы рад видеть ваш ответ на что-то вроде детерминированных, но эффективных способов инициализации K-средних.
Ройи

@ Ройи, если у тебя есть вопрос, почему бы не опубликовать вопрос?
ttnphns

У вас есть много способов поделиться? Я создал несколько трюков «Найти самые дальние образцы», но стоит ли ставить вопрос о многих хороших?
Ройи

Если у вас есть что-то, что вы считаете достойным, поделитесь этим в форме вопроса, если по этому вопросу можно спросить что-то достойное.
ttnphns

5

В прошлый раз, когда я сделал всесторонний обзор литературы по этому вопросу, который, по общему признанию, почти 20 лет назад, двумя основными рекомендациями были:

  1. Использовать метод Уорда (это стандартный алгоритм иерархического кластерного анализа), чтобы найти начальные центры.
  2. Используйте случайные старты.

В приложениях с большими данными метод Уорда работает не очень хорошо, хотя его можно применить к подвыборке.

Я провел несколько симуляций, которые я так и не нашел, и нашел, что:

Главный вывод, который я извлек из этого, заключается в том, что алгоритм SPSS на удивление хорош, но если у кого-то есть ресурсы, более 1000 случайных стартовых точек - это путь.


В своих симуляциях вы заметили какие-либо изменения в поведении для многомерных данных?
Арин Чаудхури

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

Примечание. Алгоритм SPSS по умолчанию (кстати, ваша ссылка не работает) - это то, что я назвал RUNFP в своем ответе.
ttnphns

4

С номенклатурой ttnphns я протестировал RGC, RP и KMPP на:

  • 2D / 3D очки
  • мешок слов из текстовых документов
  • кривые с по существу расстояния.L2

Я не рекомендую RGC, потому что полученные центры очень близки друг к другу: среднее многих точек близко к глобальному среднему (закон больших чисел). Это может сильно замедлить конвергенцию: требуется некоторое время, чтобы кластеры начали индивидуализироваться.

RP обычно хорош и рекомендовал бы в качестве первого легкого выбора.

KMPP очень популярен и очень хорошо работает в небольшом измерении: по сравнению с RP он имеет тенденцию уменьшать вероятность окончания локального минимума.

Однако, когда я работал над большими наборами данных (1 млн. Точек, представляющих собой мешок слов из текстовых документов с большим измерением), RP немного опережал KMPP в том смысле, что он заканчивался немного меньшим количеством итераций. Я был удивлен этим. В большом наборе данных / высоком измерении сходимость к глобальному минимуму невозможна, вы измеряете качество как «насколько хорош локальный минимум» = «насколько мал итоговый SOD». Оба метода имели одинаковое качество.

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


Спасибо. Я буду иметь дело с данными большого размера, так что это весьма полезно.
Арин Чаудхури
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.