
の続きです。今回はrangerパッケージでランダムフォレスト分類してみましょう。OLSでは53.9%, LASSO回帰では54.7%, k-NNでは62.8%でしたがランダムフォレストではこれらの正解率よりも高い正解率になるでしょうか?
まず、rangerパッケージの読み込みをします。

rangerで処理できるように、qualityをファクター型にしたデータフレームを用意します。

トレーニングデータでモデルを作ります。

predict()関数で、テストデータで予測します。

実際の値と比較してみましょう。

正解率は、69.1%でした。

今まで予測モデルの中では一番良い結果でした。
今回は以上です。
次回は
です。
はじめから読むには、
です。
今回のコードは以下になります。
#
# rangerパッケージの読み込み
library(ranger)
#
#
# ranger用にqualityをファクター型にする
df_ranger <- df |>
mutate(quality = as.factor(quality))
summary(df_ranger$quality)
#
# トレーニングデータでモデル生成
set.seed(301)
rf_model <- ranger(
formula = quality ~ ., # qualityを目的変数、それ以外を説明変数
data = df_ranger[idx, ], # データフレーム
num.trees = 500, # 木の数
mtry = 4, # 分割時に使う変数の数
importance = "impurity", # 変数重要度の計算方法
probability = FALSE, # クラス確率を出力しない
classification = TRUE # 明示的に分類タスクであることを指定
)
#
# テストデータで予測
rf_pred <- predict(rf_model, data = df_ranger[-idx, ])$predictions
head(rf_pred)
#
# 実際の値と比較
table(rf_pred, df_ranger$quality[-idx])
#
# 正解率
(7 + 451 + 703 + 172 + 15) / nrow(df_ranger[-idx, ])
#
(冒頭の画像は、Bing Image Creator で生成しました。プロンプトは Fine photograph of landscape of natural green fields, close up of white clover flowers, blue sky です。)