(Bing Image Creator で生成: プロンプト: Close up of yellow Iris flowers, photo. Background is high blue sky)
の続きです。
今回は決定木モデル(Decision Tree Model)で予測してみます。
まず、rpartパッケージ、rpart.plotパッケージを読み込みます。
rpart()関数でもとになるモデルを生成します。
この初期ツリーの cp をみてみます。
xerror が一番小さいときの cp が一番良い cp です。
この best_cp で初期ツリーを剪定します。
この剪定後のツリーのグラフを描いてみます。
predict()関数で予測します。
結果はどうでしょうか?
正解率は、56.5% でした。
前回の線形モデルをOLSで推計したときの55%よりは良い結果ですが、目標とする62.3%には届きませんでした。
今回は以上です。
次回は、
です。
はじめから読むには、
です。
今回のコードは以下になります。
#
# rpartパッケージの読み込み
library(rpart)
library(rpart.plot)
#
# rpartで初期ツリーを推定
set.seed(123987)
initial_tree <- rpart(healthy ~ ., data = df_train,
method = "class",
control = rpart.control(cp = 1e-9,
minsplit = 5))
#
# 初期ツリーのcptable
printcp(initial_tree)
#
# best cp は
best_cp <- initial_tree$cptable[which.min(initial_tree$cptable[ , 4]), 1]
best_cp
#
# best_cpで剪定
pruned_tree <- prune(initial_tree, cp = best_cp)
#
# pruned_treeのグラフ
rpart.plot(initial_tree)
#
# pruned_treeで予測
pred_tree <- predict(pruned_tree, df_test, type = "class")
#
# 結果
table(pred_tree, df_test$healthy)
#
# 正解率
(31 + 8) / (31 + 8 + 23 + 7)
#