ランダムフォレスト

所要時間

120分

学ぶコト

・ランダムフォレストの概要
・ランダムフォレストをPythonで実装

ランダムフォレスト実装に挑戦!

それでは早速ランダムフォレストを実装していきましょう!

このレッスンではご自身で取り組んでいただきます。

基本的には決定木のレッスンでおこなったフローと変わりません。

課題

・irisのデータセットを使ってください
・学習データとテストデータは5:5に分けてください
・ランダムフォレストを使ってください※Pythonでランダムフォレストを実装する際はscikit-learnのRandomForestClassifierが使用できます
・正解率と混合行列をアウトプットしてください

解答を見る
# ライブラリの読み込み
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import confusion_matrix
import matplotlib.pyplot as plt
import seaborn as sns

# irisデータの読み込み
df = sns.load_dataset("iris")

# 説明変数と目的変数に分ける
df_x = df.drop('species', axis=1)
df_y = df['species']

#学習データとテストデータに分割
train_x, test_x, train_y, test_y = train_test_split(df_x, df_y, test_size=0.5)

#モデル学習
model = RandomForestClassifier()
model.fit(train_x, train_y)

# 予測値を算出
pred_y = model.predict(test_x)

# 正解率を表示
print(model.score(test_x, test_y))

# 混合行列を算出
print(confusion_matrix(pred_y, test_y))

0.9466666666666667
[[26 0 0]
[ 0 25 2]
[ 0 2 20]]

ランダムフォレストの実装は出来ましたか?決定木とほとんど変わらないのでゆっくりやれば出来るはずです。

最終的なアウトプットの値はサンプリングの仕方によって変わるのでピッタリ一緒ではなくて問題ないです。

それでは次のレッスンに進みましょう!