Czytałem ten post na blogu R-blogerów i jestem zdezorientowany ostatnią sekcją kodu i nie mogę tego rozgryźć.Błąd podczas tworzenia map Kohonena w R?
http://www.r-bloggers.com/self-organising-maps-for-customer-segmentation-using-r/
Mam próbował odtworzyć to z moich własnych danych. Mam 5 zmiennych, które następują po rozkładzie wykładniczym z 2755 punktów.
jestem w porządku i można wykreślić mapę że generuje:
plot(som_model, type="codes")
Część kodu nie rozumiem jest:
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)
Jak Rozumiem, ta sekcja kodu ma na celu wykreślić jedną ze zmiennych na mapie, aby zobaczyć, jak wygląda, ale w tym miejscu napotykam problemy. Gdy ten fragment kodu pojawia się ostrzeżenie:
Warning message:
In bgcolors[!is.na(showcolors)] <- bgcol[showcolors[!is.na(showcolors)]] :
number of items to replace is not a multiple of replacement length
i produkuje działki:
Które tylko niektóre jak nie wygląda dobrze ...
Teraz myślę, że sprowadza się do sposobu, w jaki funkcja agregująca ponownie zamówiła dane. Długość var_unscaled wynosi 789, a długość som_model $ data, training [, var] i unit.classif mają długość 2755. Próbowałem narysować zagregowane dane, wynik nie był ostrzeżeniem, ale niezrozumiałym wykresem (zgodnie z oczekiwaniami).
Teraz myślę, że tak się stało, ponieważ unit.classif zawiera wiele powtarzających się liczb i dlatego zmniejszył rozmiar.
Pytanie brzmi, czy martwię się ostrzeżeniem? Czy tworzy dokładny wykres? Czym dokładnie jest sekcja "Właściwość" w poleceniu fabuły? Czy istnieje inny sposób, w jaki mogę "agregować" dane?
Jeżeli działka nie jest poprawna, jeśli to tak, martwić się ostrzeżenia. W rzeczywistości powinieneś zawsze zwracać uwagę na to, dlaczego otrzymujesz ostrzeżenie. Nie w pełni to sprawdziłem, ale zauważyłem, że masz podzbiór na końcu 'aggregate'. Czy to konieczne? –
Powinieneś podać [przykład odtwarzalny] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example), abyśmy mogli uruchomić ten sam kod co Ty i uzyskać ten sam błąd. W przeciwnym razie nie wiemy w jaki sposób dane są przechowywane w każdym z tych obiektów lub w jaki sposób powinny być połączone w deklaracji fabuły. – MrFlick
Skąd pochodzi paleta 'coolBlueHotRed' i jaka jest jej długość? Może być skonfigurowany tak, aby pasował do danych przykładowych, a nie do danych. –