RandomForest modeli için düzeltme işareti değişkeni


10

varImpPaketle birlikte bir randomForest modeli için işlevin nasıl çalıştığını anlamada sorun yaşıyorum caret. Aşağıdaki örnekte var3 özelliği varImp, caret işlevini kullanarak sıfır önem kazanmaktadır , ancak altta yatan randomForest son model, var3 özelliği için sıfır olmayan bir öneme sahiptir. Neden böyle?

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

Ben SO için konu dışı bir moderatör bayrağı b / c ayarladım. CrossValidated.com
DWin

Yanıtlar:


11

Anladığım kadarıyla sadece 3 değişkeniniz var. Varsayılan olarak varImpişlev 0-100 aralığında ölçeklendirilmiş sonuçlar döndürür. Var3 en düşük önem değerine sahiptir ve ölçeklenmiş önemi sıfırdır. Aramaya çalışın varImp(rf, scale = FALSE).


0

Daha fazla sezgi sağlamak için @ DrDom'un cevabına ekleme:

Verilen önem puanları varImp(rf, scale = FALSE)basitçe aşağıdakilerle hesaplanır: rf$finalModel$importance[,1]/rf$finalModel$importanceSD

Bu, özelliğin ortalama% IncMSE'sinin standart sapmasına bölünmesiyle elde edilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.