Caret varImp für das randomForest-Modell


10

Ich habe Probleme zu verstehen, wie die varImpFunktion für ein randomForest-Modell mit dem caretPaket funktioniert . Im folgenden Beispiel erhält das Merkmal var3 mithilfe der Caret- varImpFunktion die Bedeutung Null , das zugrunde liegende randomForest-Endmodell hat jedoch für das Merkmal var3 eine Bedeutung ungleich Null. Warum ist das so?

require(randomForest)
require(caret)


rf <- train(x, y, 
      method = "rf",
      trControl = trainControl(method = "oob"),
      importance = TRUE,
      verbose = TRUE,
      tuneGrid = data.frame(mtry = num.predictors) )


fm <- rf$finalModel


> varImp(f)
rf variable importance

       Overall
var1    100.00
var2    80.14
var3    0.00


> importance(fm)
        %IncMSE IncNodePurity
var2    872.7935      40505276
var1    1021.4707      55682866
var3     273.0168       3078731

Ich habe ein Moderator-Flag gesetzt, da dies für SO nicht zum Thema gehört. Eher geeignet für CrossValidated.com
DWin

Antworten:


11

Wie ich verstanden habe, haben Sie nur 3 Variablen. Standardmäßig gibt die varImpFunktion skalierte Ergebnisse im Bereich von 0 bis 100 zurück. Var3 hat den niedrigsten Wichtigkeitswert und seine skalierte Wichtigkeit ist Null. Versuchen Sie anzurufen varImp(rf, scale = FALSE).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.