Швидкий k-означає алгоритм на 10 ^ 10 балів?


14

Я шукаю зробити k-означає кластеризацію на наборі 10-мірних точок. Улов: є 10 ^ 10 балів .

Я шукаю лише центр та розмір найбільших кластерів (скажімо, від 10 до 100 кластерів); Мене не цікавить, в якому кластері закінчується кожна точка. Використання k-засобів конкретно не важливо; Я просто шукаю подібний ефект, будь-який приблизний k-засіб або пов'язаний з ним алгоритм був би чудовим (minibatch-SGD означає, ...). Оскільки GMM є в певному сенсі тією ж проблемою, що і k-засоби, також цікаво робити дані GMM на однакових даних.

У такому масштабі підсистема даних, ймовірно, не суттєво змінить результат: шанси на пошук одних і тих же топ-10 кластерів за допомогою 1/10000-ї вибірки даних дуже хороші. Але навіть тоді це проблема 10 ^ 6 балів, яка знаходиться на / поза межею простежуваної.


1
Кілька алгоритмів описані в книзі «Майнінг масивних наборів даних», яку ви можете безкоштовно завантажити тут . Прочитайте главу 7 "Кластеризація".
lanenok

Відповіді:


12

k-засоби засновані на середніх значеннях .

Він моделює кластери, використовуючи засоби, і, таким чином, покращення, додаючи більше даних, є незначним. Похибка середньої оцінки зменшується на 1 / sqrt (n); тому додавання більше даних окупається все менше і менше ...

Стратегії таких великих даних завжди обертаються навколо вибірки:

Якщо ви хочете підлінійний час виконання, вам доведеться робити вибірку!

Насправді, Mini-Batch-Kmeans тощо роблять саме так: неодноразово вибирають з набору даних.

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

Я б пішов з алгоритмом MacQueen. Це онлайн; за замовчуванням він одноразово передає ваші дані (хоча це популярно повторити). Поширити це непросто, але я думаю, ви можете дозволити собі лінійно читати свої дані, наприклад, 10 разів з SSD?


Я не знав про онлайн-алгоритм MacQueen! Як правило, це отримує ті ж результати, що і "класичні" K-засоби? А як щодо використання проб для відбору пластів? Таким чином, OP має вибірку для повторного запуску K-засобів у випадку, якщо слід перевірити кілька значень K.
Віктор Ма

6

В якості бічного коментаря зауважте, що використання K-засобів для 10D-даних може закінчитися ніде, згідно з прокляттям розмірності. Звичайно, це дещо змінюється залежно від природи даних, але як тільки я спробував визначити поріг, в якому K-Means починає дивно поводитися щодо розмірності, я отримав щось на зразок 7D. Після 7 вимірів він почав пропускати правильні кластери (мої дані генерувались вручну відповідно до 4 добре розділених гауссових розподілів, і я використовував функцію kmeans MATLAB для мого маленького експерименту).


Це можливо і, звичайно, завжди залежить від даних. Однак, враховуючи, що на плакаті є 10 ^ 10 (імовірно незалежних) зразків, здається, що 10 розмірів не були б надто великою проблемою.
Райан Дж. Сміт

2
Дякуємо за Ваш коментар @ RyanJ.Smith. ваш коментар точно в тому ж напрямку, що і я. Я просто не побачив нічого про цю проблему в пості. І про № зразків; однак у нього є багато зразкових точок, які він все ще може застрягти в проблемі розмірності. Я думаю, ви сперечаєтесь із протилежною стороною проблеми з невеликим розміром вибірки, яка, на мою думку, не вірна. Якщо у нього дані з високими розмірами, проблема з низьким розміром вибірки буде проблемою, але я думаю, що велика кількість даних не обов'язково нічого означає.
Касра Маншаї

10 розмірів поки не багато.
Мав QUIT - Anonymous-Mousse

1
Як ти визначаєш мого друга? те, що я сказав, було результатом експерименту, розробленого для відповіді на таке питання, однак на нього НЕ МОЖНА відповісти! Що саме у вашому коментарі "багато"? це залежить від багатьох обставин, як я згадував у своїй відповіді. в деяких ситуаціях 10D може бути проблематичним.
Касра Маншаї
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.