kmeans в большом наборе данных, запустив несколько подвыборок - PullRequest
0 голосов
/ 29 октября 2019

У меня есть набор данных с 50 + mn строками и 2 столбцами, к которым я хочу применить kmeans, разбитый на 4 кластера. Я продолжаю сталкиваться с проблемами памяти (необъяснимые сбои R-studio и ПК) при использовании kmeans. Я пытался использовать bigkmeans, но получаю ошибку std: bad_alloc.

Итак, я хотел бы создать, скажем, 5 или 10 случайных выборок из примерно 2 млн строк этих данных, запустить kmeans для каждой и поместить результаты водин кадр данных.

Вероятно, есть способ сделать это элегантно с apply или чем-то подобным, но я не знаком с этим и поэтому ищу некоторую помощь.

Вот как я бы это сделал один раз.

df_sample <- df[sample(nrow(df),2000000),]


k4_s1 <- kmeans(df_sample,iter.max = 50,centers = 4, nstart = 50)

Я мог бы поместить это в цикл for, но, возможно, есть что-то более эффективное, и любая помощь приветствуется.

...