Não obtenho a diferença entre the rfobject$importance
e importance(rfobject)
na coluna MeanDecreaseAccuracy.
Exemplo:
> data("iris")
> fit <- randomForest(Species~., data=iris, importance=TRUE)
> fit$importance
setosa versicolor virginica MeanDecreaseAccuracy MeanDecreaseGini
Sepal.Length 0.027078501 0.019418330 0.040497602 0.02898837 9.173648
Sepal.Width 0.008553449 0.001962036 0.006951771 0.00575489 2.472105
Petal.Length 0.313303381 0.291818815 0.280981959 0.29216790 41.284869
Petal.Width 0.349686983 0.318527008 0.270975757 0.31054451 46.323415
> importance(fit)
setosa versicolor virginica MeanDecreaseAccuracy MeanDecreaseGini
Sepal.Length 1.277324 1.632586 1.758101 1.2233029 9.173648
Sepal.Width 1.007943 0.252736 1.014141 0.6293145 2.472105
Petal.Length 3.685513 4.434083 4.133621 2.5139980 41.284869
Petal.Width 3.896375 4.421567 4.385642 2.5371353 46.323415
>
Eu recebo diferentes valores de MeanDecreaseAccuracy, mas tenho a mesma ordem para as variáveis de importância (para fit$importance
e para importance(fit)
):
Petal.Width
Comprimento da pétala
Sepal.Length
Sepal.Width
Mas em outros conjuntos de dados às vezes recebo pedidos diferentes. Alguém pode explicar o que está acontecendo aqui? Isso é possivelmente um bug?
Editar (em resposta a Martin O'Leary )
Ok, obrigado! Eu notei outra coisa.
Dando uma olhada na rfcv()
função, notei a linha:
impvar <- (1:p)[order(all.rf$importance[, 1], decreasing = TRUE)]
com essa linha, escolhemos a primeira coluna, all.rf$importance
que nos dá a ordem das medidas específicas da classe (para o primeiro fator ) calculadas como decréscimo médio apenas na precisão. Isso nem sempre tem a mesma ordem que a diminuição média da precisão em todas as classes ( MeanDecreaseAccuracy
). Não seria melhor escolher tanto o MeanDecreaseAccuracy
ou MeanDecreaseGini
coluna, ou melhor usando o importance()
-função para os valores escalonados? Portanto, teríamos um número sequencialmente reduzido de preditores classificados por importância variável (em todas as classes) e não apenas por importância variável para a primeira classe.