Ось підсумок кількох алгоритмів кластеризації, які можуть допомогти відповісти на питання
"яку техніку кластеризації я повинен використовувати?"
Не існує об'єктивно "правильного" алгоритму кластеризації Ref
Алгоритми кластеризації можна класифікувати за їх "кластерною моделлю". Алгоритм, призначений для конкретного типу моделі, як правило, не працює на іншій моделі. Наприклад, k-засоби не можуть знайти невипуклі кластери, вони можуть знайти лише кластери круглої форми.
Отже, розуміння цих "кластерних моделей" стає ключовим для розуміння того, як вибрати серед різних алгоритмів / методів кластеризації. Типові моделі кластерів включають:
[1] Моделі підключення: будує моделі на основі дистанційного з'єднання. Наприклад, ієрархічна кластеризація. Використовується, коли нам потрібні різні перегородки на основі висоти зрізу дерева. R функція: hclust в пакеті статистики.
[2] Центральні моделі: будує моделі, представляючи кожен кластер одним середнім вектором. Використовується тоді, коли нам потрібно чітке розділення (на відміну від нечіткої кластеризації, описаної далі). Функція R: kmeans в пакеті статистики.
[3] Моделі розподілу: будує моделі на основі статистичних розподілів, таких як багатоваріантні нормальні розподіли, використовувані алгоритмом очікування-максимізації. Використовується, коли форми кластера можуть бути довільними на відміну від k-засобів, які передбачають кругові кластери. R функція: emcluster в emcluster-пакеті.
[4] Моделі щільності: будує моделі на основі кластерів як з’єднаних щільних областей у просторі даних. Наприклад DBSCAN та OPTICS. Використовується, коли форми кластера можуть бути довільними на відміну від k-засобів, що передбачає кругові кластери .. R функція dbscan в пакеті dbscan.
[5] Моделі підпростори: будує моделі на основі як членів кластера, так і відповідних атрибутів. Напр. Біклестерність (також відома як спільна кластеризація або кластеризація в двох режимах). Використовується, коли потрібна одночасна кластеризація рядків і стовпців. R функція biclust в пакеті biclust.
[6] Групові моделі: будує моделі на основі інформації про групування. Наприклад, спільна фільтрація (алгоритм рекомендацій). R функція Рекомендатор у пакеті рекомендацій.
[7] Моделі на основі графіків: будують моделі на основі кліку. Алгоритми виявлення структури спільноти намагаються знайти щільні підграграфи у спрямованих або непрямих графіках. Наприклад, функція R cluster_walktrap в пакеті igraph.
[8] Кохоненська самоорганізуюча карта особливостей: будує моделі на основі нейронної мережі. R функціонує в пакеті kohonen.
[9] Спектральна кластеризація: будує моделі, засновані на непуклій структурі кластера, або коли міра центру не є відповідним описом повного кластера. R функція specc в пакеті kernlab.
[10] кластеризація підпростору: Для даних з великими розмірами функції відстані можуть бути проблематичними. моделі кластерів включають відповідні атрибути для кластера. Напр., Функція hddc у пакеті R HDclassif.
[11] Кластеризація послідовностей: Групові послідовності, які пов'язані між собою. rBlast пакет.
[12] Поширення спорідненості: будує моделі на основі передачі повідомлень між точками даних. Він не вимагає визначення кількості кластерів перед тим, як запустити алгоритм. Краще для певних завдань з комп’ютерного зору та обчислювальної біології, наприклад, кластеризації зображень людських облич та виявлення регламентованих стенограм, ніж k-засобів, Ref Rpackage APCluster.
[13] Потокове кластеризація: будує моделі на основі даних, що надходять постійно, такі як телефонні записи, фінансові операції тощо. Наприклад, пакет RIRCH [ https://cran.r-project.org/src/contrib/Archive/birch/]
[14] Кластеризація документів (або кластеризація тексту): побудова моделей на основі SVD. Він використовувався в темі вилучення. Напр. Морква [ http://search.carrot2.org] - це кластеризація результатів пошуку з відкритим кодом, яка може кластеризувати документи в тематичні категорії.
[15] Модель латентного класу: вона пов'язує набір спостережуваних багатоваріантних змінних до набору прихованих змінних. LCA може використовуватися при спільній фільтрації. Функція R Рекомендатор у пакеті рекомендацій має функціональність спільної фільтрації.
[16] Бікстеризація: використовується для одночасного кластеризації рядків та стовпців даних у двох режимах. Напр., Функція Biclust в пакеті biclust.
[17] М'яке кластеризування (нечітка кластеризація): Кожен об’єкт певним чином належить кожному кластеру. Наприклад, функція Fclust у пакеті fclust.