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