Кластерный анализ в R

Вопросы по статистическому пакету R. Не обязательно гео.
womak
Участник
Сообщения: 82
Зарегистрирован: 13 окт 2006, 06:19
Репутация: 1

Re: Кластерный анализ в R

Сообщение womak » 28 янв 2012, 08:00

gamm писал(а):
womak писал(а):Очень хотелось бы увидеть комментарии к результатам выполнения функций hc$order, hc$merge и hc$height
во-первых, это не функции, во-вторых, описание (выдержка из help) уже было приведено выше. Успехов!
Во-первых, очень хотелось бы увидеть комментарии к результатам вывода на экран компонент (элементов) order, merge и height объекта hc.
Во-вторых, выдержку из help-а я прочел, прочел и сам help, по ключевым словам нашел функцию flashClust, улучшенный аналог hclust и там тоже прочел help. Но мне хотелось увидеть простые комментарии на русском языке, правильно ли я интерпретировал результаты: "да, правильно", "нет, неправильно", "в принципе, правильно, но..." и т.д.
Спасибо.

womak
Участник
Сообщения: 82
Зарегистрирован: 13 окт 2006, 06:19
Репутация: 1

Re: Кластерный анализ в R

Сообщение womak » 05 фев 2012, 14:19

вот так решилась моя задача

Код: Выделить всё

x <- read.table('qwake.csv', sep=';', header= FALSE) 
x <- x[-1] 
d <-  dist(x, method = "euclidean", diag = FALSE, upper = FALSE) 
hc <- hclust(d, 'median') 
plot(hc)
gc()
gc(reset=TRUE)                                               # оптимизация памяти
# sink('clust_qwake.txt') функция выводит не более 1500 строк
library(MASS)                                                #подключаем пакет MASS
write.matrix(hc$height,file='cl_qwake.dat')                  #записываем в файл высоты (уровень связи) 
write.matrix(hc$merge,file='cl_qwake.txt')                   #записываем схему объединения

womak
Участник
Сообщения: 82
Зарегистрирован: 13 окт 2006, 06:19
Репутация: 1

Re: Кластерный анализ в R

Сообщение womak » 12 июл 2021, 08:20

Доброе время!
Прошло много лет))) и вот опять запустил R. Задача та же, но остаточные знания подвели. Чтобы не плодить новую тему, спрошу тут.
Все тот же код, который представлен выше, с небольшими доработками еще с 2012 года. Тогда он был рабочий под WindowsXP x32, а сейчас Windows10 x64, 8Гб ОЗУ проблема.

Код: Выделить всё

library (StatMatch)
library (MASS)
x <- read.table(file="quake.dat", sep=",", header = FALSE) 
write.matrix(x, file="quake4.dat")
x<-x[,-c(4)]
write.matrix(x, file="analize.dat")
x <- scale(x,center = TRUE, scale = TRUE)
write.matrix(x, file="analize.txt")
d <-  dist(x, method = "euclidean", diag = FALSE, upper = FALSE)
hc <- hclust(d^2, 'ward.D')
write.matrix(hc$height, file='sc_quake.dat')
write.matrix(hc$merge, file='sc_quake.txt')
В процессе исполнения появляется ошибка:

Код: Выделить всё

> d <-  dist(x, method = "euclidean", diag = FALSE, upper = FALSE)
Error in do.call(".Call", c(list(method), list(x), list(y), pairwise,  : 
  negative length vectors are not allowed
Подскажите, пожалуйста, что я делаю неправильно?
Может это произойти при большом объеме матрицы (сейчас порядка 250 000 строк и три столбца)?

Аватара пользователя
antonv
Активный участник
Сообщения: 229
Зарегистрирован: 29 ноя 2016, 10:44
Репутация: 114
Откуда: Санкт-Петербург

Re: Кластерный анализ в R

Сообщение antonv » 12 июл 2021, 12:25

womak,
Может это произойти при большом объеме матрицы (сейчас порядка 250 000 строк и три столбца)?
Может - в R максимальная длина вектора - (2^31 - 1), то есть чуть более 2 миллиардов значений. Если вы пытаетесь попарно посчитать расстояние между 250 000 элементов, вы получаете около 31 миллиарда пар.

Ответить

Вернуться в «R»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя