web-dev-qa-db-ja.com

キャレットパッケージでツリープロットを作成する方法

キャレットパッケージを使用して、rpartパッケージを使用してデータをモデル化しています。

library('caret')
data(iris)
formula <- as.formula(Species ~.)
t <- train(formula,iris,method = "rpart",cp=0.002,maxdepth=8)
plot(t)

結果として、オブジェクト 't'を取得し、このオブジェクトをプロットしてツリープロットを取得しようとしています。しかし、結果は次のようになります。 enter image description here

キャレットトレインオブジェクトからツリープロットを作成する方法はありますか?

22
Jot eN

caret::train()から返されるオブジェクトはリストです。要素finalModelにはモデルが含まれています。

これを試して:

plot(t$finalModel)
text(t$finalModel)

enter image description here

27
Andrie

より見栄えの良いツリープロット:

library(rattle)
fancyRpartPlot(t$finalModel)

enter image description here

46
Jot eN

同じ問題がありましたが、ここでは答えはそれで解決しません。木ではなくランダムフォレストを使用したため、ここに来るすべての人が同じ問題を抱えている場合は次のようになります。

つまり、ツリーが表示されるのは、メソッドが次のような場合のみです。

method = "rpart"

ランダムフォレストの使用

method = "rf"

次のプロットになります: enter image description here

すでにここに拡張された答え: R(Caret)に決定ツリーをプロット

9
mrk