У меня нет отраслевого опыта в области интеллектуального анализа данных или больших данных, поэтому я хотел бы услышать, как вы поделились своим опытом.
Люди на самом деле используют k-means, PAM, CLARA и т. Д. В действительно большом наборе данных? Или они просто случайно выбирают из него образец? Если они просто возьмут образец набора данных, будет ли результат надежным, если набор данных не распределяется нормально?
В практических ситуациях, когда запускаются эти алгоритмы, можем ли мы сказать, сколько итераций обычно проходит до сходимости? Или количество итераций всегда увеличивается с размером данных?
Я спрашиваю об этом, потому что я думаю о разработке подхода к прекращению итерационных алгоритмов до сходимости, и все же результаты все еще приемлемы. Я думаю, что стоит попробовать, если число итераций, скажем, более 1000, поэтому мы можем сэкономить некоторые вычислительные затраты и время. Что вы думаете?
number of iterations always grow with the data size
Не обязательно.Ответы:
К-значит дешево. Вы можете позволить себе запускать его много раз .
Есть плохие алгоритмы (стандартные) и хорошие алгоритмы. Для хороших алгоритмов последующие итерации часто стоят намного меньше, чем 1% первой итерации.
Есть действительно медленные реализации. Не используйте их.
К-значит на "больших" данных не существует. Потому что это работает только на низкоразмерных векторных данных. Вы не будете превышать память современного сервера с такими данными. да, существуют большие данные - но вы не можете использовать k-means, скажем, за месяц данных Twitter, потому что это не даст вам ничего полезного.
При хорошей реализации на современном сервере самый большой набор данных, который вы можете найти, где k-means по-прежнему дает полезный результат, вероятно, требуется менее 1 минуты для вычисления до сходимости. Так зачем думать о пределе итераций?
источник