Чи бувають випадки, коли в k-засобів немає оптимального k?


11

Це було в моїй свідомості принаймні кілька годин. Я намагався знайти оптимальний k для виходу з алгоритму k-означає (з метрикою косинусної схожості ), тому в кінцевому підсумку побудував спотворення як функцію від кількості кластерів. Мій набір даних - це колекція 800 документів у 600-мірному просторі.

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

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

введіть тут опис зображення


2
Я, чесно кажучи, не розумію, як вам вдалося використовувати k-засоби кластеризації з матрицею введення максимуму (і це косинус!). К-засоби кластеризації потребують введення необроблених даних (об'єкти X змінних) і внутрішньо працюють на евклідовій відстані.
ttnphns

2
@ttnphns: Я сподіваюся, що я зрозумів вашу думку, але, наскільки мені відомо, ми можемо використовувати будь-яку метрику відстані з k-означає, чи не так? Я роблю це в Python, але схоже, що для R є навіть бібліотека, доступна для R: cran.r-project.org/web/packages/skmeans/index.html Вхід був не матрицею близькості, а terms x documentотриманим після виконання сингулярного вектора розкладання. Будь ласка, виправте мене, якщо я помиляюся.
Легенда

Сферична кластеризація k-засобів , заснована на вимірюванні косинусу, для мене нова, мушу визнати. Я сподіваюся прочитати більше про це одного дня.
ttnphns

@ttnphns: Дякую за повернення. Просто хотів переконатися, що я не вживаю яблук та апельсинів разом :)
Легенда

Lp

Відповіді:


12

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

Це по суті "прокляття розмірності", дивіться також цю сторінку Вікіпедії.

Документ, який може представляти інтерес, - Sanguinetti, G., "Зменшення розмірності кластерних датців", IEEE Transaction on Pattern Pattern and Machine Intelligence, vol. 30 ні. 3, стор 535-540, березень 2008 р. ( Www ). Що трохи нагадує непідконтрольну версію LDA, яка шукає простір низького розміру, який підкреслює структуру кластера. Можливо, ви могли б використовувати це як метод вилучення функції перед виконанням k-засобів?


На жаль вибачте. Я мав би зазначити, що я використовую схожість косинуса.
Легенда

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

+1 Дякую за посилання. Я пройду це і повернусь. Я застосував SVD на моїй оригінальній матриці перед застосуванням k-засобів, щоб зменшити кількість розмірів.
Легенда

3

Як саме ви використовуєте схожість косинуса? Це те, що називається сферичним K-засобом? Ваш набір даних досить малий, тому я б спробував уявити його як мережу. Для цього природно використовувати подібність (дійсно, наприклад, подібність косинусу або співвідношення Пірсона), застосувати відсічення (враховуйте лише відносини вище певної подібності) і перегляньте результат як мережу, наприклад, Cytoscape або BioLayout . Це може бути дуже корисним для отримання даних про дані. По-друге, я б обчислював особливі значення для вашої матриці даних або власних значень відповідно перетвореної та нормалізованої матриці (матриця документ-документ, отримана в якійсь формі). Структура кластера повинна (знову ж таки) відображатися як стрибок у упорядкованому списку власних значень або сингулярних значень.


+1 Дякую за покажчики Я не знав про Cytoscape. Я спробую це. І так, схоже, що k-засоби з косинусною схожістю називаються сферичними k-засобами. Я застосував цей k-засіб після застосування SVD та зменшення кількості вимірів. Те, як я зменшив кількість вимірів, полягав у використанні правила дисперсії (виберіть значення сингулярності, які сприяють 95% дисперсії у вихідних даних).
Легенда

Якщо ви не заперечуєте, не могли б ви вказати на підручник, який пояснює, як це зробити (або принаймні щось подібне). Як тільки я генерую матрицю, я просто експортую її, а потім імпортую її в Cytoscape і виконую те, що ви запропонували? Мені цікаво, чи Cytoscape має вбудовані методи подібності косинусу чи мені потрібно попередньо обчислити якийсь формат даних і дати його як вхід?
Легенда

Коли я працюю з цими програмами, я обчислюю всі парні подібності зовні, фільтрую за порогом і створюю файл у форматі <label1> <label2> <подібність>. Будь-хто повинен мати можливість прочитати цей вхід. У BioLayout він повинен мати суфікс .txt, я думаю; у CytoScape використовувати 'імпорт з таблиці'.
мікан

Зрозумів. Я це зроблю і скоро повернусь. Ще раз дякую
Легенда

Вибачте за глухе запитання, але я форматував свої дані як <label1> <label2> <slikeity>, але не можу зрозуміти, як саме їх імпортувати. Я зробив Файл-> Імпорт-> Мережа із таблиці та вибрав джерела та цільові стовпці. Я залишив взаємодію за замовчуванням. Але як я повинен імпортувати ваги кромки разом з ребрами? Будь-які пропозиції, будь-ласка?
Легенда

2

Як правило, так, k-засоби можуть сходитися до дуже чітких рішень, які можуть бути визнані непридатними. Це відбувається, зокрема, для скупчень неправильної форми.

Для отримання більшої інтуїції ви також можете спробувати інший підхід до візуалізації: Для k-засобів ви можете візуалізувати кілька запусків за допомогою k-засобів за допомогою Graphgrams (див. Пакет графіків WEKA - найкраще отриманий менеджером пакунків або тут . Вступ та приклади також можуть бути знайдені тут .


1

Якщо я правильно зрозумів графік, це графік кількості кластерів, K на осі x та відстань кластерів у межах осі y?

Оскільки ваша цільова функція K-означає - мінімізувати WCSS, цей сюжет завжди повинен монотонно зменшуватися. У міру додавання більше кластерів відстань між точками кластера завжди зменшиться. Це основна проблема вибору моделі, тому вам потрібно використовувати трохи більше вишуканості.

Можливо, спробуйте статистику Gap: www-stat.stanford.edu/~tibs/ftp/gap.ps тощо.

Крім того, ви можете виявити, що K-засоби не є правильним інструментом для роботи. Скільки кластерів ви очікуєте знайти? Використання правила дисперсії для зменшення розмірності для кластеризації не є доцільним. Дивіться цей документ, коли проектування на перші ПК К-1 є відповідним заходом попередньої обробки: http://people.csail.mit.edu/gjw/papers/jcss.ps

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

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