私はcaret
+ ranger
を使ってランダムな森林を訓練しました。レンジャーで重要な変数
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'
)
ここで変数の重要性を確認したいと思います。しかし、これらの作品のどれも:
> 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.
任意のアイデア私はそれを得ることができる方法&場合は?
ありがとうございました。
ええ、私はキャレットの文書に飛び込んでそれを見つけました。しかし、情報を見つけるのに便利な方法をありがとう! 'varImp()'は、キャレットの 'train()'で訓練されたほとんどのモデルで変数の重要度を取得する方法です。将来のユーザーへの注意:私は100%確実ではないし、チェックする時間もないが、重要度= '不純物'を持つ必要があるようだ(私は '重要度= '順列'もうまくいくと思う)は 'train()'のパラメータとして渡され、 'varImp()'を使うことができます。 –
もう一つの注意:モデルを 'ranger'を使って訓練し、'キャレット 'を使わなければ、重要度を変える正しい方法に 'important(fit)'があるようです。上記のように、 'importance = '不純物'(または '順列')のパラメータは' train() 'にある必要があると思います。 –
それは私のために働いていないのが不思議です。重要な値はありません... hmmm –