Вибір методу кластеризації


73

Використовуючи кластерний аналіз на наборі даних для групування подібних випадків, потрібно вибрати серед великої кількості методів кластеризації та міри відстані. Іноді один вибір може впливати на інший, але існує безліч можливих комбінацій методів.

Хтось має якісь рекомендації щодо вибору серед різних алгоритмів / методів кластеризації та дистанційних заходів ? Як це пов'язано з природою змінних (наприклад, категоричної чи числової) та проблемою кластеризації? Чи існує оптимальна техніка?


1
Чи можете ви спробувати дати більш конкретний опис того, що ви хочете об'єднати? чи це просто необхідний сучасний рівень кластеризації?
Робін Жирард

2
Я не маю на увазі негайного застосування. Мене просто цікавить загальний підхід до вибору методу кластеризації та міри подібності.
Бретт

Перевірте також це подібне питання.
ttnphns

І деякі застереження мають специфічні ієрархічні методи кластеризації.
ttnphns

Відповіді:


43

Немає остаточної відповіді на ваше запитання, оскільки навіть в рамках одного і того ж методу вибір відстані для представлення індивідів (не) подібності може дати різний результат, наприклад, при використанні евклідового проти евклідового квадрата в ієрархічній кластеризації. В якості іншого прикладу, для двійкових даних ви можете обрати індекс Жакарда як міру подібності та перейти до класичного ієрархічного кластеризації; але існують альтернативні підходи, як, наприклад, Mona ( Монотетичний аналіз) алгоритм, який враховує лише одну змінну за часом, тоді як інші ієрархічні підходи (наприклад, класичний HC, Agnes, Diana) використовують усі змінні на кожному кроці. Підхід k-засобів поширювався по-різному, включаючи розділення медоїдів (PAM) або репрезентативних об'єктів, а не центроїдів (Kaufman and Rousseuw, 1990), або нечітке скупчення (Chung and Lee, 1992). Наприклад, основна відмінність k-засобів від PAM полягає в тому, що PAM мінімізує суму невідмінностей, а не суму квадратних евклідових відстаней; нечітка кластеризація дозволяє вважати "часткове членство" (ми пов'язуємо кожне спостереження з вагою, що відображає приналежність до класу). І для методів, що спираються на ймовірнісні рамки, або так званого моделювання кластеризації (або латентного аналізу профілю)для психометріків) є чудовий пакет: Mclust . Тож остаточно потрібно розглянути, як визначити схожість індивідів, а також спосіб зв’язування індивідів разом (рекурсивна чи ітеративна кластеризація, суворе чи нечітке членство в класі, непідконтрольний або напівнаглядний підхід тощо).

Зазвичай для оцінки стабільності кластера цікавим є порівняння декількох алгоритмів, які в основному "поділяють" деяку схожість (наприклад, k-засоби та ієрархічна кластеризація, оскільки евклідова відстань працює для обох). Для оцінки відповідності між двома кластерними рішеннями були запропоновані деякі покажчики у відповідь на це питання: Де вирізати дендрограму? (див. також перехресні посилання на інше посилання на цьому веб-сайті). Якщо ви використовуєте R, ви побачите, що декілька пакунків уже доступні в перегляді завдань щодо аналізу кластерів, а кілька пакунків містять віньєтки, що пояснюють конкретні методи або дають приклади.

Аналіз кластерів: основні поняття та алгоритми дає хороший огляд декількох методів, що використовуються в кластерному аналізі. Щодо гарної недавньої книги з R-ілюстраціями, я б рекомендував розділ 12 Ізенмана, Сучасні багатоваріантні статистичні методи (Springer, 2008). Нижче наведено кілька інших стандартних посилань:

  • Cormack, R., 1971. Огляд класифікації. Журнал Королівського статистичного товариства, A 134, 321–367.
  • Еверітт, Б., 1974. Кластерний аналіз . Лондон: Heinemann Educ. Книги.
  • Гордон, А., 1987. Огляд ієрархічної класифікації. Журнал Королівського статистичного товариства, A 150, 119–137.
  • Гордон, А., 1999. Класифікація , 2-е видання. Чапман і Холл.
  • Kaufman, L., Rousseuw, P., 1990. Пошук груп у даних: вступ до кластерного аналізу . Нью-Йорк, Вілі.

30

Цитата Хасті, Тібшірані та Фрідмана, Елементи статистичного навчання , с. 506:

"Відповідний захід несхожості набагато важливіший для досягнення успіху в кластеризації, ніж вибір алгоритму кластеризації. Цей аспект проблеми ... залежить від конкретних знань домену і менш піддається загальним дослідженням."

(Це означає, чи не було б непогано, якби (wibni) був сайт, де студенти могли спробувати кілька алгоритмів та метрик на кількох невеликих стандартних наборах даних?)


Дякую чи; чи можете ви запропонувати тег "приклади можна запускати в Інтернеті"?
деніс

Ви маєте на увазі переназначення питання (я не думаю, що це гарна ідея, оскільки ОП не було після інструментів онлайн-бенчмаркінгу, IMO) або нового питання, яке ви хочете задати? У всякому разі, я не маю уявлення про хорошу мітку на даний момент. Спитати на Meta?
chl

1
Ця цитата може бути оманливою - вона, очевидно, не стосується (мабуть, надуманих) прикладів у Вікіпедії . Через сильний нелінійний кластер у другому наборі даних алгоритми зв'язування та щільності кластеризації працюють набагато краще, ніж будь-який метод на основі центроїдів. Не існує жодної міри подібності, яка дозволить схемі кластеризації центроїдів працювати краще. Ця цитата застосовна лише в тому випадку, якщо ви вважаєте, що кластери приблизно лінійні (іноді безпечне припущення). Я б запропонував спочатку візуально перевірити ваші дані, якщо це можливо.
naught101

@ naught101, впевнено - візуально перевірити дані, щоб побачити подібність / несхожість є найважливішим, але простіше сказати, ніж зробити
Denis

ця цитата з якого видання? Ви можете навести свою цитату
MonsterMMORPG

12

Ви не можете заздалегідь знати, який алгоритм кластеризації буде кращим, але є деякі підказки, наприклад, якщо ви хочете кластеризувати зображення, є певні алгоритми, спершу слід спробувати, як Fuzzy Art, або якщо ви хочете згрупувати обличчя, слід почати з (GGCI) глобальною геометричною кластеризацією для зображення.

У будь-якому випадку це не гарантує найкращого результату, тому я б робив програму, яка дозволяє методично запускати різні алгоритми кластера, такі як weka, RapidMiner або навіть R (що не візуально), там я встановлю програму на запустити всі різні алгоритми кластеризації, я можу, з усіма можливими різними відстанями, і якщо їм потрібні параметри, експериментувати кожен із різними значеннями параметрів (крім того, якщо я не знаю кількість кластерів, запустіть кожен із різноманітністю її чисел). Після того, як ви вирішите експеримент, залиште його запущеним, але не забудьте десь зберегти результати кожного запуску кластеризації.

Потім порівняйте результати, щоб отримати найкраще в результаті кластеризацію. Це складно, оскільки є кілька показників, з якими можна порівняти, і не всі надаються кожним алгоритмом. Наприклад, алгоритми нечіткої кластеризації мають різні показники, ніж нечіткі, але їх все одно можна порівняти, розглядаючи нечіткі групи результатів як нечіткі, я буду дотримуватися порівняння з класичними показниками, такими як:

• SSE: сума квадратної помилки з елементів кожного кластеру.

• Між кластерна відстань: сума квадратної відстані між кожним центроїдом кластера.

• Внутрішня кластерна відстань для кожного кластеру: сума квадратної відстані від елементів кожного кластера до його центрального центру.

• Максимальний радіус: найбільша відстань від екземпляра до його центрального кластера.

• Середній радіус: сума найбільшої відстані від екземпляра до його центрального кластера, поділена на кількість кластерів.


4

Вибір правильної відстані не є елементарним завданням. Коли ми хочемо зробити кластерний аналіз на наборі даних, різні результати можуть з’являтися на різних відстанях, тому дуже важливо бути обережним, яку відстань вибрати, тому що ми можемо зробити помилковий артефакт, який добре фіксує мінливість, але насправді без сенс у нашій проблемі.

Евклідова відстань доцільно , коли у мене є безперервні числові змінні , і я хочу , щоб відобразити абсолютні відстані. Ця відстань враховує кожну змінну і не видаляє надмірності, тому якби у мене було три змінні, які пояснюють одне і те ж (співвідносяться), я би зважив цей ефект на три. Більше того, ця відстань не є інваріантною за шкалою, тому загалом мені доводиться масштабувати раніше, щоб використовувати відстань.
Приклад екології: Ми маємо різні спостереження у багатьох місцевостях, з яких експерти взяли зразки деяких мікробіологічних, фізичних та хімічних факторів. Ми хочемо знайти закономірності в екосистемах. Ці фактори мають високу кореляцію, але ми знаємо, що кожен має значення, тому ми не хочемо видаляти ці надмірності. Ми використовуємо евклідову відстань зі масштабованими даними, щоб уникнути ефекту одиниць.

Відстань махаланобіса є доцільною, коли у мене є постійні числові змінні і я хочу відображати абсолютні відстані, але ми хочемо видалити надмірності. Якщо ми повторили змінні, їх повторюваний ефект зникне.

Сімейство Хеллінгера , профіль виду та відстань акордів доречні, коли ми хочемо зробити акцент на відмінностях між змінними, коли ми хочемо диференціювати профілі. Ці відстані зважують за сумарними кількостями кожного спостереження таким чином, що відстані невеликі, коли змінні за змінною особини є більш схожими, хоча в абсолютних величинах були дуже різними. Стережись! Ці відстані дуже добре відображають різницю між профілями, але втратили ефект величини. Вони можуть бути дуже корисними, коли ми маємо різні розміри зразків. Приклад екології: Ми хочемо вивчити фауну багатьох земель і маємо матрицю даних інвентаризації черевоногих (місця відбору проб у рядках та назви видів у стовпцях). Матриця характеризується тим, що має багато нулів і різної величини, оскільки деякі місцевості мають деякі види, а інші - інші. Ми могли використовувати відстань Геллінгера.

Брей-Кертіс досить схожий, але це більш доречно, коли ми хочемо диференціювати профілі, а також враховувати відносні величини.


1
Будь ласка, зареєструйте та / або об'єднайте свої акаунти 1 2 (інформацію про те, як це зробити, ви можете знайти в розділі " Мій рахунок " нашого довідкового центру ). Тоді ви зможете відслідковувати свої відповіді, відповіді на них тощо тощо та інші переваги. Оскільки ви тут новачок, ви можете скористатися нашою екскурсією , де є інформація для нових користувачів.
gung

Ви вже опублікували ідентичну відповідь stats.stackexchange.com/a/253268/3277 раніше у подібній темі. Дублювання відповідей не вважається справедливим. Я б запропонував вам видалити наявний. Але ви можете і бажаєте опублікувати посилання на ваші інші відповіді - як коментар під питанням ОП, або будь-яка відповідь у поточній темі.
ttnphns

2

Що стосується мене, якщо ви хочете безпечного вибору, методи спектральної кластеризації досягають найвищих показників точності за останні роки - принаймні у кластеризації зображень.

Що стосується метрики відстані, то вона багато залежить від того, як організовані ваші дані. Безпечним вибором є проста евклідова відстань, але якщо ви знаєте, що ваші дані містять колектори, слід зіставити точки за допомогою методів ядра.

PS: всі вони пов'язані з числовими значеннями, а не категоричними. Я не впевнений, як можна було б згрупувати категоричні дані.


2

Ось підсумок кількох алгоритмів кластеризації, які можуть допомогти відповісти на питання

"яку техніку кластеризації я повинен використовувати?"

Не існує об'єктивно "правильного" алгоритму кластеризації 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.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.