2016-05-17 30 views
5

私は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. 

任意のアイデア私はそれを得ることができる方法&場合は?

ありがとうございました。

答えて

4

varImp(fit)

これを理解するために、私はnames(fit)を見て、names(fit$modelInfo)につながりました。次に、varImpがオプションの1つとして表示されます。

+2

ええ、私はキャレットの文書に飛び込んでそれを見つけました。しかし、情報を見つけるのに便利な方法をありがとう! 'varImp()'は、キャレットの 'train()'で訓練されたほとんどのモデルで変数の重要度を取得する方法です。将来のユーザーへの注意:私は100%確実ではないし、チェックする時間もないが、重要度= '不純物'を持つ必要があるようだ(私は '重要度= '順列'もうまくいくと思う)は 'train()'のパラメータとして渡され、 'varImp()'を使うことができます。 –

+2

もう一つの注意:モデルを 'ranger'を使って訓練し、'キャレット 'を使わなければ、重要度を変える正しい方法に 'important(fit)'があるようです。上記のように、 'importance = '不純物'(または '順列')のパラメータは' train() 'にある必要があると思います。 –

+0

それは私のために働いていないのが不思議です。重要な値はありません... hmmm –

0

@fmalaussena

set.seed(123) 
ctrl <- trainControl(method = 'cv', 
        number = 10, 
        classProbs = TRUE, 
        savePredictions = TRUE, 
        verboseIter = TRUE) 

rfFit <- train(Species ~ ., 
       data = iris, 
       method = "ranger", 
       importance = "permutation", #*** 
       trControl = ctrl, 
       verbose = T) 

に応じてあなたは、引数importance"permutation"または​​のいずれかを渡すことができます。 両方の値についての説明はここで見つけることができます:http://alexperrier.github.io/jekyll/update/2015/08/27/feature-importance-random-forests-gini-accuracy.html「レンジャー」パッケージについては

0

あなたが使用してモデルのために利用可能なすべての出力を見ることができ、注意点として

fit$variable.importance 

との重要性を呼び出すことができますstr()

str(fit) 
関連する問題