データ分析・上級問題チェック
問題 35 /40
scikit-learnのランダムフォレストに関する説明で、誤っているものはどれか。
選択 1
決定木の集合であり、ランダムフォレストのように複数の学習器を用いた学習方法をアンサンブル学習と呼ぶ。
選択 2
ランダムフォレストの引数「n_estimators」は、個々の決定木の深さを指定する。
選択 3
複数の決定木を利用して多数決で予測するため、モデルの内容を可視化するのは難しい。
選択 4
単独の決定木は訓練データに対して過剰適合する傾向があるが、ランダムフォレストは過剰適合の度合いを減らすことができる。
解説
選択肢2が正解です。
n_estimatorsは個々の決定木の深さではなく、決定木の数を指定する引数です。
次のコードはランダムフォレストの例です。
-------------------------------
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier(n_estimator=100)
model.fit(X_train, y_train)
model.predict(X_test)
-------------------------------
2行目でRandomForestClassifierクラスをインスタンス化する際に、「n_estimator=100」と指定しています。これは決定木の深さではなく、決定木の数を指定しています。
ランダムフォレストも単独の決定木と同様に、引数「max_depth」でツリーの深さを指定することができますが、決定木の数を十分大きくできる場合は、深さを指定する必要はありません。
ランダムフォレストは複数の決定木を利用して多数決で予測するため、単独の決定木より過剰適合の度合いを減らすことができます。ただし、複数の決定木を使うため、単独の決定木のようにモデルの内容をツリーで可視化するのは難しいです。
(公式書籍 p.242-244)