Caret varImp cho mô hình RandomForest


10

Tôi gặp khó khăn khi hiểu cách thức varImphoạt động của mô hình RandomForest với caretgói. Trong ví dụ dưới đây, tính năng var3 có mức độ quan trọng bằng 0 khi sử dụng varImpchức năng của caret , nhưng mô hình cuối cùng RandomForest cơ bản có tầm quan trọng khác không đối với tính năng var3. Tại sao điều này là trường hợp?

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

Tôi đặt cờ điều hành b / c đây là ngoài chủ đề cho SO. Thích hợp hơn cho CrossValidated.com
DWin

Câu trả lời:


11

Theo tôi hiểu bạn chỉ có 3 biến. Theo mặc định, varImphàm trả về kết quả tỷ lệ trong phạm vi 0-100. Var3 có giá trị quan trọng thấp nhất và tầm quan trọng của nó là 0. Cố gắng gọi varImp(rf, scale = FALSE).


0

Thêm vào câu trả lời của @ DrDom, để cung cấp thêm trực giác:

Điểm quan trọng varImp(rf, scale = FALSE)mang lại, được tính đơn giản bằng cách sau: rf$finalModel$importance[,1]/rf$finalModel$importanceSD

Đây là% IncMSE trung bình của tính năng chia cho độ lệch chuẩn của nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.