Кластеризация данных о местоположении и ошибок с ограничением памяти - PullRequest
0 голосов
/ 17 апреля 2019

Проблема:

Я собираю данные о положении в форме данных x, y, которые были масштабированы, чтобы иметь среднее значение 0 и стандартное отклонение 1.Когда я пытаюсь вычислить мой алгоритм kmeans для определения количества кластеров, используя метод solhouette, я сталкиваюсь с ошибкой ограничения памяти, утверждающей, что размер вектора слишком велик - 313 ГБ, чтобы быть точным.Поэтому я проверил длину моего столбца и обнаружил 289 879 точек данных, которые я бы не заподозрил в создании проблемы с ограничением памяти.Следующим моим шагом было увеличение лимита памяти в R с помощью функции memory.limit(X).В моем случае я использовал x=10000000000000 или 1e+13.Однако это все равно не сработало.

Что я хотел бы сделать:

Сгруппировать все данные и не разбивать их на разные наборы данных, такие как поезд или тестзадавать.

Вопрос

  1. Как увеличить предел памяти после 1e+13?Я получаю сообщение об ошибке, что не могу уменьшить лимит памяти при добавлении еще одного 0 к функции memory.limit.

  2. Как мне проверить, является ли мой R 64-битным по сравнению с32-битный?На этот вопрос ответили с помощью функции sessioninfo().Мой сеанс 64-разрядный.

  3. Как создать кластеры с 1 набором данных в сравнении с набором поездов и тестов?

Воспроизводимый код

library(factoextra)
library(NbClust)
library(cluster)
x<-rnorm(289879,mean=0,sd=1)
y<-rnorm(289879,mean=0,sd=1)
df<-data.frame(x,y)
fviz_nbclust(df, kmeans, method = "silhouette")+
   labs(subtitle = "Silhouette method")
nb<-NbClust(data = df, distance = "euclidean", min.nc = 2,
   max.nc = 20, method = 'kmeans', index = "all")
fviz_nbclust(nb) + theme_minimal()
...