Які критерії зупинки для агломеративної ієрархічної кластеризації використовуються на практиці?


32

Я знайшов велику літературу, яка пропонує всілякі критерії (наприклад, Glenn et al. 1985 (pdf) та Jung et al. 2002 (pdf)). Однак більшість із них не так просто здійснити (принаймні, з моєї точки зору). Я використовую scipy.cluster.hierarchy для отримання ієрархії кластерів, і зараз я намагаюся вирішити, як з цього формувати плоскі кластери. Моєю метою є виявлення загальних зразків у моїх спостереженнях, тому я не маю посилання на порівняння отриманих кластеризацій. Чи може хтось запропонувати прагматичне рішення?


На моїй веб-сторінці є zip колекція "Критерії кластеризації" з описом (та функціями SPSS) ряду популярних критеріїв внутрішнього кластеризації (правила зупинки). Для вашої інформації.
ttnphns

Відповіді:


18

Наступний запис у Вікіпедії насправді робить непогану роботу з пояснення найбільш популярних і відносно простих методів:

Коліно Методи евристичні описано там, ймовірно, найбільш популярні з - за його просте пояснення (кількість дисперсії пояснюється кількостями кластерів) в поєднанні з візуальною перевіркою. Теоретико метод інформації не важко реалізувати або і сторінка має деякий псевдокод ви могли б використовувати , щоб почати. Останнє є аналогічним пеніалізованому ймовірності, заснованому на складності моделі, як у відомих інформаційних критеріях, таких як AIC, BIC тощо.


Спасибі! Стаття у Вікіпедії про ієрархічну кластеризацію не посилається на цю.
Бьорн Поллекс

2
Авжеж. Виправлено зараз під посиланнями "див. Також", дякую за вказівку на це!
АРС

У методі Elbow, що робити, якщо об'єкти, що підлягають кластеризації, є досить "складними"? Я маю на увазі, що це не прості пункти, натомість це складні набори даних. Я з'ясував, що вони попарно відстають (самовизначена відстань). Як би я обчислив так звану "дисперсію", щоб застосувати метод Локоть?
Сіббс Азартні ігри

17

Досить складно запропонувати чітке рішення про те, як вибрати "найкращу" кількість кластерів у ваших даних, незалежно від методу кластеризації, який ви використовуєте, оскільки Cluster Analysis прагне виділити групи статистичних одиниць (будь то особи чи змінні). ) з дослідницькою чи описовою метою, по суті. Отже, вам також доведеться інтерпретувати вихід вашої схеми кластеризації, і кілька кластерних рішень можуть бути однаково цікавими.

Тепер, що стосується звичайних статистичних критеріїв використовуються для прийняття рішення , коли припинити агреговані дані, а загострений на @ars більшість візуальні наведення критеріїв , в тому числі аналізу дендрограмми або перевірок кластерів профілів, звані також силует ділянки (Rousseeuw, 1987) . Також було запропоновано декілька числових критеріїв , також відомих як індекси валідності, наприклад, індекс валідності Данна, індекс дій Девіс-Боулдіна, індекс С, гамма Губерта. Ієрархічна кластеризація часто виконується разом з k-засобами (насправді, декількома примірниками k-засобів, оскільки це стохастичний алгоритм), так що вона додає підтримку знайденим рішенням кластеризації. Я не знаю, чи всі ці речі легко доступні в Python, але величезна кількість методів доступна в R (див.Перегляд завдань кластера , який вже цитується @mbq для відповідного питання, Які інструменти можна використовувати для застосування алгоритмів кластеризації на MovieLens? ). Інші підходи включають нечітке кластеризацію та кластеризацію на основі моделей (їх також називають прихованим аналізом ознак у психометричній спільноті), якщо ви шукаєте більш надійний спосіб вибору кількості кластерів у ваших даних.

До речі, я щойно натрапив на цю веб-сторінку, scipy-кластер , яка є розширенням до Scipy для створення, візуалізації та аналізу ієрархічних кластерів . Може, вона включає інші функціональні можливості? Я також чув про PyChem, який пропонує досить непогані речі для багатоваріантного аналізу.

Наступна посилання також може бути корисною:

Steinley, D., & Brusco, MJ (2008). Вибір змінних в кластерному аналізі: емпіричне порівняння восьми процедур. Психометріка , 73 , 125-144.


Дякую за цю чудову відповідь! Насправді, ієрархічний модуль кластеризації, який ви показали, вже є частиною науки. Також scipy забезпечує реалізацію k-засобів, тому я міг би це легко використати.
Бьорн Поллекс

Гаразд, я не детально розглядав це. Що стосується k-засобів, вам потрібно звернути увагу на той факт, що нам, як правило, потрібні дві зовнішні петлі для перевірки кластерного рішення (один, де ви змінюєте # кластерів, а інший для зміни насіння - мета полягає в тому, щоб мінімізувати RSS); тоді ви можете використовувати статистику Gap для вибору оптимальної кількості кластерів.
chl

5

Нещодавно я став фондом методу візуалізації кластерграм (реалізованого в R).

Я використовую його для додаткового методу для оцінки "хорошої" кількості кластерів. Розширити його на інші методи кластерингу не так вже й складно (я насправді це зробив, просто не потрапив до публікації коду)

alt текст

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