1

関数 varImp() を使用しています。

ツリーに当てはめてから、varImp() を使用して、どの変数が最も重要かを確認します。varImp() の出力から最も重要な変数名を抽出したいと思います。しかし、出力はリストのように見え、変数名を取得する方法はなく、変数の重要度の数値の重みのみが表示されます。

出力をデータ フレームに変換し、names() も使用しようとしましたが、どちらも重要な変数名を取得できません。

次に例を示します。

> # Sample data
> head(Orthodont)
Grouped Data: distance ~ age | Subject
  distance age Subject  Sex
1     26.0   8     M01 Male
2     25.0  10     M01 Male
3     29.0  12     M01 Male
4     31.0  14     M01 Male
5     21.5   8     M02 Male
6     22.5  10     M02 Male
> sample_tree <- rpart(distance ~ ., data = Orthodont)
> varImp(sample_tree)
          Overall
age     1.1178243
Sex     0.5457834
Subject 2.8446154
> names(varImp(sample_tree))
[1] "Overall"
> as.data.frame(varImp(sample_tree))
          Overall
age     1.1178243
Sex     0.5457834
Subject 2.8446154
> # What I want are the names of the two most important variables.
4

1 に答える 1

2

探している名前は、オブジェクトの rownames() にあります。

imp <- varImp(sample_tree)
rownames(imp)[order(imp$Overall, decreasing=TRUE)]

出力:

[1] "Sex"     "age"     "Subject"

したがって、これらのスコアによると、最も重要な 2 つの変数は次のとおりです。

rownames(imp)[order(imp$Overall, decreasing=TRUE)[1:2]]

これにより、次のことが得られます。

[1] "Sex"     "age"
于 2014-08-07T19:13:37.130 に答える