HOWTO · R

Rのランダムフォレスト

このチュートリアルでは、R でのランダム フォレスト アプローチを示します。

このページの内容

ランダム フォレスト アプローチでは、多数の決定木が作成されます。 このチュートリアルでは、R でランダム フォレスト アプローチを適用する方法を示します。

Rのランダムフォレスト

ランダム フォレスト アプローチでは、多数の決定木が作成されます。 多くの観察結果がデシジョン ツリーに入力され、それらからの最も一般的な出力が最終出力として使用されます。

次に、新しい観測がすべての決定木に送信され、すべての分類モデルに対して多数決が取られます。 ツリーの構築中に使用されなかったケースについて、OOB (out-of-bag) エラーの推定が行われます。

iris データセットを使用して、それにランダム フォレスト アプローチを適用してみましょう。 R でランダム フォレストを実装するには、caTools と randomForest をインストールする必要があります。

install.packages("caTools")
install.packages("randomForest")

パッケージがインストールされたら、それらをロードしてランダム フォレスト アプローチを開始できます。 例を参照してください:

# Loading package
library(caTools)
library(randomForest)

# Split the data in train data and test data with ratio 0.8
split_data <- sample.split(iris, SplitRatio = 0.8)
split_data

train_data <- subset(iris, split == "TRUE")
test_data <- subset(iris, split == "FALSE")

# Fit the random Forest to the train dataset
set.seed(120) # Setting seed
classifier_Random_Forest = randomForest(x = train_data[-4],
                             y = train_data$Species,
                             ntree = 400)

classifier_Random_Forest

上記のコードは iris データを 0.8 の比率で分割し、トレーニング データとテスト データを作成します。 最後に、400 本の木でランダム フォレスト アプローチを適用します。 出力は次のとおりです。

Call:
 randomForest(x = train_data[-4], y = train_data$Species, ntree = 400)
               Type of random forest: classification
                     Number of trees: 400
No. of variables tried at each split: 2

        OOB estimate of  error rate: 0%
Confusion matrix:
           setosa versicolor virginica class.error
setosa         30          0         0           0
versicolor      0         30         0           0
virginica       0          0        30           0

ランダム フォレスト モデルが適合したら、テスト セットの結果を予測し、混同行列を確認して、モデル グラフをプロットできます。 以下のコードを参照してください。

# Predict the Test set result
y_pred = predict(classifier_RF, newdata = test_data[-4])

# The Confusion Matrix
conf_matrix = table(test_data[, 4], y_pred)
conf_matrix

# Plot the random forest model
plot(classifier_Random_Forest)

# The importance plot
importance(classifier_Random_Forest)

# The Variable importance plot
varImpPlot(classifier_Random_Forest)

上記のコードは、テスト セットの結果を予測し、混同行列を表示します。 最後に、ランダム フォレスト モデル プロット、重要度、および 変数重要度 プロットを示します。

出力を参照してください:

> conf_matrix
     y_pred
      setosa versicolor virginica
  0.1      1          0         0
  0.2     10          0         0
  0.3      3          0         0
  0.4      4          0         0
  0.5      1          0         0
  0.6      1          0         0
  1        0          2         0
  1.1      0          1         0
  1.2      0          1         0
  1.3      0          5         0
  1.4      0          3         0
  1.5      0          6         1
  1.6      0          1         1
  1.7      0          1         0
  1.8      0          2         4
  1.9      0          0         3
  2        0          0         3
  2.1      0          0         1
  2.3      0          0         4
  2.4      0          0         1

ランダム フォレスト モデル プロット:

ランダム フォレスト プロット 1

ランダム フォレスト モデルの重要性:

             MeanDecreaseGini
Sepal.Length        6.1736467
Sepal.Width         0.9664428
Petal.Length       24.1454822
Species            28.0489838

Variable Importance プロット:

ランダム フォレスト プロット 2