К-означає: Скільки ітерацій у практичних ситуаціях?


10

Я не маю досвіду в галузі видобутку даних або великих даних, тому хотілося б почути, як ви поділилися певним досвідом.

Чи реально люди керують k-засобами, PAM, CLARA тощо на дійсно великому наборі даних? Або вони просто випадковим чином вибирають з нього зразок? Якщо вони просто беруть вибірку набору даних, чи був би результат надійним, якщо набір даних зазвичай не розподіляється?

Чи можемо ми в практичних ситуаціях під час виконання цих алгоритмів сказати, скільки ітерацій зазвичай триватиме до зближення? Або кількість ітерацій завжди зростає з розміром даних?

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


number of iterations always grow with the data sizeНе обов'язково.
ttnphns

Існують різні критерії, щоб зупинити ітерації в K-засобах. Цікаво, що просто встановити кількість ітерацій на фіксоване значення (скажімо, 10 або 20) - серед розумних способів. K-засоби призначені для швидкого методу, тому, якщо ви хочете перевірити критерій конвергенції після кожної ітерації, цей критерій повинен бути легким / швидким для обчислення.
ttnphns

1
Чи є якийсь "науковий" спосіб визначити максимальну кількість повторень, які слід виконати?
foo

Ваш останній коментар - це гарне запитання. Чесно кажучи, я не знаю. можливо, інші люди відповідають на нього.
ttnphns

Відповіді:


6
  1. K-засоби дешеві. Ви можете дозволити собі запустити його для багатьох ітерацій.

  2. Існують погані алгоритми (стандартний) і хороші алгоритми. Для хороших алгоритмів пізніші ітерації часто коштують набагато менше 1% від першої ітерації.

  3. Є реально повільні реалізації. Не використовуйте їх.

  4. K-засобів на "великих" даних не існує. Тому що він працює лише на низькомірних векторних даних. Ви не перевищите пам'ять сучасного сервера з такими даними. так, більші дані існують - але ви не можете використовувати k-засоби, скажімо, за місяць даних Twitter, тому що це не дасть вам нічого корисного.

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


1
Погодьтеся. У цій роботі ( Масштабовані K-засоби за ранговим пошуком ) автори констатували, що K-засоби конвергуються після 20-50 ітерацій у всіх практичних ситуаціях, навіть на високовимірних наборах даних під час тестування. Отже, крім K-засобів, чи знаєте ви алгоритм, який займає величезну кількість ітерацій до конвергенції?
пт

Можливо, тренування SVM? Я вважаю, що це ітеративне, намагаючись знайти найкращий (і найменший, оскільки прогноз залежить від цього!) Набору векторів підтримки.
Мав QUIT - Anonymous-Mousse

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