Tôi đã đào tạo một khu rừng ngẫu nhiên bằng cách sử dụng caret
+ ranger
.Tầm quan trọng thay đổi với kiểm lâm
fit <- train(
y ~ x1 + x2
,data = total_set
,method = "ranger"
,trControl = trainControl(method="cv", number = 5, allowParallel = TRUE, verbose = TRUE)
,tuneGrid = expand.grid(mtry = c(4,5,6))
,importance = 'impurity'
)
Bây giờ tôi muốn thấy tầm quan trọng của các biến. Tuy nhiên, không công trình nào trong số này hoạt động:
> importance(fit)
Error in UseMethod("importance") : no applicable method for 'importance' applied to an object of class "c('train', 'train.formula')"
> fit$variable.importance
NULL
> fit$importance
NULL
> fit
Random Forest
217380 samples
32 predictors
No pre-processing
Resampling: Cross-Validated (5 fold)
Summary of sample sizes: 173904, 173904, 173904, 173904, 173904
Resampling results across tuning parameters:
mtry RMSE Rsquared
4 0.03640464 0.5378731
5 0.03645528 0.5366478
6 0.03651451 0.5352838
RMSE was used to select the optimal model using the smallest value.
The final value used for the model was mtry = 4.
Bất kỳ ý tưởng nào nếu & làm cách nào để nhận được?
Cảm ơn.
Vâng, tôi cũng tìm thấy nó trong thời gian chờ đợi bằng cách đọc tài liệu của 'caret'. Cảm ơn bạn vì phương pháp hữu ích đó để tìm kiếm thông tin! Nó chỉ ra 'varImp()' là cách để có được tầm quan trọng biến đối với hầu hết các mô hình được đào tạo với 'train()' của caret. Lưu ý cho người dùng trong tương lai mặc dù: Tôi không chắc chắn 100% và không có thời gian để kiểm tra, nhưng có vẻ như cần có 'critical = 'impurity'' (tôi đoán' important =' hoán vị'' cũng sẽ hoạt động) được chuyển thành tham số trong 'train()' để có thể sử dụng 'varImp()'. –
Một lưu ý khác: có vẻ như nếu bạn đào tạo mô hình của mình với 'ranger' nhưng không có 'caret', thì' tầm quan trọng (phù hợp) 'sẽ là cách đúng đắn để có được tầm quan trọng thay đổi. Như trên, tôi nghĩ rằng tham số 'critical = 'impurity'' (hoặc' hoán vị ') cần phải có trong' train() ' –
Lạ nó không hoạt động đối với tôi. Không có giá trị tầm quan trọng ... hmmm –