Rで何かをしたり、読書をするブログ

政府統計の総合窓口のデータや、OECDやUCIやのデータを使って、Rの練習をしています。ときどき、読書記録も載せています。

UCI Machine Learning Repository の Credit Approval のデータ分析4 - R で Decision Tree でクラシフィケーション

Bing Image Creator で生成: Close up of natural Gerbera jamesonii flowers, background is blue sky and white clouds, deep forests , photo

www.crosshyou.info

の続きです。

今回は、Decision Tree でクラシフィケーションしてみます。

Fitting and predicting with parsnip • parsnip こちらのサイトを参照します。

tidymodels の中の pasnip パッケージの decision_tree() 関数を使います。

set_mode("classification") としています。

あとは、前回のロジスティクス回帰と同じ作業です。

fit() 関数でモデルをフィットさせます。

predict() 関数で df_test のデータを使って予測します。

Tidy Characterizations of Model Performance • yardstick を参考にして、

metrics() 関数で正解率をみてみます。

正解率は、86.7% です。前回のロジスティクス回帰よりもよい正解率です。

組み合わせごとの正解・不正解した数を確認します。

(84 + 60 ) / (84 + 60 + 14 + 8 ) = 86.75% です。

roc_auc() 関数も使ってみます。

0.913 なので、こちらの値も前回のロジスティクス回帰よりもよい値です。

前回のロジスティクス回帰の結果もデータフレームにしておきましょう。

前回と同じように、metrics() 関数を使ってみます。

正解率は 83.7% ですね。

roc_auc() 関数も使ってみます。

0.902 です。

今回は以上です。

次回は

www.crosshyou.info

です。

 

初めから読むには、

www.crosshyou.info

です。

今回のコードは以下になります。

#
# Decision Tree Model
# モデルを生成
dt_cls_spec <-
  decision_tree(tree_depth = 30) |> 
  set_mode("classification") |> 
  set_engine("rpart")
dt_cls_spec
#
# モデルをフィット
set.seed(250)
dt_cls_fit <- dt_cls_spec |> 
  fit(approved ~ ., data = df_train)
dt_cls_fit
#
# df_test のデータで予測
dt_cls_pred <- 
  bind_cols(
    predict(dt_cls_fit, df_test),
    predict(dt_cls_fit, df_test, type = "prob")
  ) |> 
  mutate(truth = df_test$approved)
dt_cls_pred
#
# metrics() 
dt_cls_pred |> 
  metrics(truth, .pred_class)
#
# 表
dt_cls_pred |> 
  count(.pred_class, truth)
#
# ROC
dt_cls_pred |> 
  roc_auc(truth, .pred_0)
#
# ロジスティクス回帰の結果もデータフレームにしておく
logreg_cls_pred <-
  bind_cols(
    predict(logreg_cls_fit, df_test),
    predict(logreg_cls_fit, df_test, type = "prob")
  ) |> 
  mutate(truth = df_test$approved)
logreg_cls_pred
#
# logreg_cls_pred の metrics()
logreg_cls_pred |> 
  metrics(truth, .pred_class)
#
# logreg_cls_pred の roc_auc()
logreg_cls_pred |> 
  roc_auc(truth, .pred_0)
#