Importance Variable à l'aide de l'accent circonflexe paquet (erreur); RandomForest algorithme
Je suis en train d'essayer d'obtenir la variable importance d'un rf modèle en quelque sorte. C'est l'approche que j'ai essayé jusqu'à présent, mais alterne les suggestions sont les bienvenues.
J'ai formé un modèle dans R:
require(caret)
require(randomForest)
myControl = trainControl(method='cv',number=5,repeats=2,returnResamp='none')
model2 = train(increaseInAssessedLevel~., data=trainData, method = 'rf', trControl=myControl)
Le jeu de données est assez grand, mais le modèle fonctionne très bien. Je peux accéder à ses parties, et d'exécuter des commandes telles que:
> model2[3]
$results
mtry RMSE Rsquared RMSESD RsquaredSD
1 2 0.1901304 0.3342449 0.004586902 0.05089500
2 61 0.1080164 0.6984240 0.006195397 0.04428158
3 120 0.1084201 0.6954841 0.007119253 0.04362755
Mais j'obtiens l'erreur suivante:
> varImp(model2)
Error in varImp[, "%IncMSE"] : subscript out of bounds
Apparemment il n'est pas censé être un wrapper, mais cela ne semble pas être le cas: (cf:http://www.inside-r.org/packages/cran/caret/docs/varImp)
varImp.randomForest(model2)
Error: could not find function "varImp.randomForest"
Mais c'est particulièrement étrange:
> traceback()
No traceback available
> sessionInfo()
R version 3.0.1 (2013-05-16)
Platform: x86_64-redhat-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_GB.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_GB.UTF-8 LC_COLLATE=en_GB.UTF-8
[5] LC_MONETARY=en_GB.UTF-8 LC_MESSAGES=en_GB.UTF-8
[7] LC_PAPER=C LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] parallel stats graphics grDevices utils datasets methods
[8] base
other attached packages:
[1] elasticnet_1.1 lars_1.2 klaR_0.6-9 MASS_7.3-26
[5] kernlab_0.9-18 nnet_7.3-6 randomForest_4.6-7 doMC_1.3.0
[9] iterators_1.0.6 caret_5.17-7 reshape2_1.2.2 plyr_1.8
[13] lattice_0.20-15 foreach_1.4.1 cluster_1.14.4
loaded via a namespace (and not attached):
[1] codetools_0.2-8 compiler_3.0.1 grid_3.0.1 stringr_0.6.2
[5] tools_3.0.1
OriginalL'auteur Jakub Langr | 2013-09-02
Vous devez vous connecter pour publier un commentaire.
L'importance des scores peut prendre un certain temps à calculer et
train
de ne pas obtenir automatiquementrandomForest
de les créer. Ajouterimportance = TRUE
à latrain
appel et cela devrait fonctionner.Max
OriginalL'auteur topepo
C'est parce que l'obtenus à partir de
train()
objet n'est pas un pur Hasard de la Forêt modèle, mais une liste d'objets différents (contenant le modèle final lui-même ainsi que la validation croisée des résultats, etc). Vous pouvez les voir avecls(model2)
. Donc pour utiliser le modèle final appelez simplementvarImp(model2$finalModel)
.OriginalL'auteur O_Devinyak