Я читал это сообщение в блоге на R-bloggers, и я смущен последним разделом кода и не могу понять это.Ошибка построения карт Кохонена в R?
http://www.r-bloggers.com/self-organising-maps-for-customer-segmentation-using-r/
я попытался воссоздать это с моими собственными данными. У меня есть 5 переменных, которые следуют за экспоненциальным распределением с 2755 точками.
Я хорошо с и можно построить карту, которую он генерирует:
plot(som_model, type="codes")
В разделе кода я не понимаю, это:
var <- 1
var_unscaled <- aggregate(as.numeric(training[,var]),by=list(som_model$unit.classif),FUN = mean, simplify=TRUE)[,2]
plot(som_model, type = "property", property=var_unscaled, main = names(training)[var], palette.name=coolBlueHotRed)
Как Я понимаю, этот раздел кода предполагает, что он будет отображать одну из переменных над картой, чтобы увидеть, как она выглядит, но в этом я столкнулся с проблемами. Когда я запускаю этот раздел кода я получаю предупреждение:
Warning message:
In bgcolors[!is.na(showcolors)] <- bgcol[showcolors[!is.na(showcolors)]] :
number of items to replace is not a multiple of replacement length
и производит сюжет:
Который только некоторые, как выглядит не так ...
Теперь я думаю, что это дошло до того, как агрегированная функция переупорядочила данные. Длина var_unscaled равна 789, а длина данных som_model $, training [, var] и unit.classif - длина 2755. Я попытался построить агрегированные данные, результат не был предупреждением, но был непонятным графом (как и ожидалось).
Теперь я думаю, что это сделало это, потому что unit.classif имеет много повторяющихся чисел внутри него, и именно поэтому он уменьшился в размере.
Вопрос в том, беспокоиться ли я о предупреждении? Производит ли он точный график? Что именно представляет собой раздел «Свойство» в команде plot? Есть ли другой способ «Агрегатировать» данные?
Если участок, если не правильно, то да, беспокоиться о предупреждении. В действительности, вы всегда должны быть обеспокоены тем, почему вы получаете предупреждение. Я не полностью проверил это, но заметил, что у вас есть подмножество в конце 'aggregate'. Это необходимо? –
Вы должны предоставить [воспроизводимый пример] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example), чтобы мы могли запускать тот же код, что и вы, и получить такая же ошибка. В противном случае у нас действительно нет способа узнать, как ваши данные хранятся в каждом из этих объектов или как их следует комбинировать в заявлении сюжета. – MrFlick
Откуда взялась палитра 'coolBlueHotRed', и какова ее длина? Он может быть настроен так, чтобы соответствовать данным примера, а не вашим данным. –