Рішення для постійної ідентифікації кластеру в Інтернеті?


11

Дозвольте показати вам приклад гіпотетичної онлайн-програми кластеризації:

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

У момент часу n точок 1,2,3,4 виділяються синьому кластеру A, а точки b, 5,6,7 виділяються червоному кластеру B.

Під час n + 1 вводиться нова точка a, яка присвоюється синьому кластеру A, але також призводить до того, що точка b також буде приписана синьому кластеру A

Зрештою, пункти 1,2,3,4, a, b належать A, а пункти 5,6,7 - B. Мені це здається розумним.

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

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

Зелена точка призведе до об'єднання двох синіх та двох червоних точок в один кластер, який я довільно вирішив пофарбувати у синій колір - пам'ятайте, це вже моє людське евристичне мислення на роботі!

Комп'ютеру для прийняття цього рішення доведеться використовувати правила. Наприклад, коли точки об’єднуються в кластер, то ідентичність кластера визначається більшістю. У цьому випадку ми стикаємося з нічиєю - і синій, і червоний можуть бути дійсним вибором для нового (тут синього кольору) кластера.

Уявіть п'яту червону точку, близьку до зеленої. Тоді більшість буде червоним (3 червоних проти 2 синіх), тож червоний буде хорошим вибором для нового кластера - але це буде суперечити ще чіткішому вибору червоного для правого кластера, оскільки вони були червоними і, ймовірно, повинні залишатися таким .

Мені здається, що це дурно думати про це. Зрештою, я думаю, немає досконалих правил для цього - скоріше евристика, що оптимізує деякі критерии стабільності.

Це, нарешті, призводить до моїх запитань:

  1. Чи має ця «проблема» назву, на яку вона може бути віднесена?
  2. Чи є "стандартні" рішення для цього та ...
  3. ... чи може бути для цього навіть пакет R?

Розумне спадкування ідентифікацій кластера у повторюваних кластеризаціях



Чи є проблема в тому, що ви намагаєтесь підтримувати ідентичність кластерів якомога більше на кожному кроці? Так що на N + 1 ви можете сказати, як змінився кластер, оскільки існує певний зв’язок між кластерами в N та тими в N + 1? І складний біт - що відбувається, якщо кластери розділяться і зливаються?
Спайдермен

@Spacedman: BINGO :) joyofdata.de/blog/…
Raffael

Запрошую поглянути на це і це
farhawa

Відповіді:


1

Дилема стійкості та пластичності, коефіцієнти навчання та забуття алгоритмів:

По-перше, дозвольте мені сказати, що це справді велике питання і це тип думки, що провокує думку, що дійсно покращує розуміння алгоритмів ML.

  1. Чи має ця «проблема» назву, на яку вона може бути віднесена?

Зазвичай це називається "стабільність". Цікаво, що стабільність насправді є корисною концепцією в регулярному кластеризації, тобто не в Інтернеті. "Стабільність" алгоритму часто вибирається як критерій відбору, чи було обрано правильну кількість кластерів. Більш конкретно, питання про стабільність кластеризації в Інтернеті, яке ви описали, називається " stability-plasticity dilemma.

  1. Чи є "стандартні" рішення для цього та ...

По-перше, відповідь великої картини полягає в тому, що багато алгоритм кластеризації в Інтернеті напрочуд стабільний, коли вони добре пройшли навчання з великою когортою вихідних даних. Однак це все ще є проблемою, якщо ви хочете реально визначити точку кластера точок, дозволяючи алгоритму реагувати на нові дані. Хитрість вашої точки зору коротко розглянута у Вступі до машинного навчання Етем Алпадідін. На сторінці 319 він отримує онлайн-алгоритм k-означає за допомогою застосування стохастичного градієнтного спуску, але згадує, що stability-plasticity dilemmaвиникає при виборі значення для рівня навчання. Невелика швидкість навчання призводить до стабільності, але система втрачає пристосованість там, де більша швидкість навчання здобуває адаптивність, але втрачає стабільність кластера.

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

Ще один метод, який я бачив, - це якийсь алгоритм забуття, наприклад, забуття старих точок у міру дозрівання потоку даних. Це дозволяє створити досить стабільну систему на швидких масштабах часу і дозволяє еволюціонувати на повільних масштабах часу. Adaptive Resonance Theoryбуло створено, щоб спробувати вирішити stability-plasticity dilemma. Ця стаття може бути цікавою.

Я недостатньо добре розбираюся в R, щоб запропонувати алгоритм, але пропоную шукати mini-batch k-meansалгоритм, який дозволяє керувати швидкістю навчання за його алгоритмом стохастичного градієнта спуску.

Я сподіваюся, що це допомагає!

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