Wojciech
Obłąk
Programista, Asseco
Poland
Temat: Interpretacja getTree(randomForest()) dla faktora, gdzie...
Funkcja getTree(randomForest()) wypisuje wybrane drzewo z lasu losowego w formie tabeli, gdzie jedną z kolumn jest split_point - punkt podziału węzła.Dla faktorów split_point podawany jest liczbą dziesiętną. Po zamianie na binarną, każda pojedyncza cyfra reprezentuje pojedynczy stan faktora.
Przykładowo: faktor ma 3 poziomy a split_point==5, czyli 101 binarnie - oznacza, że zapala się 1 i 3 stan faktora.
Lewa gałąź: jeśli faktor przyjmuje stan z 1 lub 3 poziomu to: ...
Prawa gałąź: jeśli faktor nie przyjmuje stanu z 1 lub 3 poziomu to: ... .
Proste, co jednak w przypadku, gdy split_point == 0 dla faktora ?
Lewa gałąź: żaden stan faktora ???
Prawa gałąź: jakikolwiek ze stanów faktora ???
Przykład, spójrzcie na wiersz 11 (f jest faktorem):
kod do rysunku (niestety nieustawiony seed więc niereproduktywny):
data(iris)
iris2<-iris
iris<-transform(iris2,f=iris$Species)
iris$Species<-ifelse(iris$Species=="setosa",1,0)
rf <- randomForest(data=iris, Species~ Sepal.Width+Petal.Length+f,ntree=100)
class(iris$f) #factor
rf$forest$xlevels
(getTree(rf,38,T))
Jakimś sposobem jednak predict(rf,iris) potrafi załapać warunek z faktorem na split_point == 0 zarówno na prawej gałężi jak i lewej.Ten post został edytowany przez Autora dnia 04.11.16 o godzinie 12:23