前回は決定木一本でアイリスデータを分類してみましたが、決定木のハイパーパラメータ次第では性能が異なってきます。
このハイパーパラメータ自体の決定も自動化する方法がランダムフォレストです。
Contents
データセット読み込みからデータ分割まで
ここはいつもどおりです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# Random forest # モジュール:サンプルデータ>訓練検証分割>モデル from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestClassifier # データのインスタンスを作成 iris = load_iris() # キーを確認 iris.keys() #dict_keys(['data', 'target', 'target_names', 'DESCR', 'feature_names', 'filename']) # input dataとtarget data として抽出する X, y = iris.data, iris.target # 訓練・検証データに分割する X_train, X_test, y_train, y_test = train_test_split(X, y ,test_size=0.3, random_state=0) |
ランダムフォレストで決定木を100本作成して訓練する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# ランダムフォレストをインスタンス化する 100個の決定木 forest = RandomForestClassifier(n_estimators=100,random_state=0) forest ''' RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini', max_depth=None, max_features='auto', max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, min_samples_leaf=1, min_samples_split=2, min_weight_fraction_leaf=0.0, n_estimators=100, n_jobs=None, oob_score=False, random_state=0, verbose=0, warm_start=False) ''' # 訓練する forest.fit(X_train, y_train) |
さあ予測して性能を確認しましょう。
変数resultは
1 2 3 4 5 |
array([ True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, False, True, True, True, True, True, True, True]) |
になりました。97%あってますね。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# 予測する y_predicted = forest.predict(X_test) y_predicted # 正解率を算出する import pandas as pd df = pd.DataFrame(y_test,y_predicted)#, y_test, y_predicted) result = df.index == df[0] score = sum(result)/len(result) ''' 0.9777777777777777 ''' |
ということで、100本分の決定木を一気に評価できたわけです。
The following two tabs change content below.
Keita N
最新記事 by Keita N (全て見る)
- 2024/1/13 ビットコインETFの取引開始:新たな時代の幕開け - 2024年1月13日
- 2024/1/5 日本ビジネスにおける変革の必要性とその方向性 - 2024年1月6日
- 2024/1/3 アメリカ債権ETFの見通しと最新動向 - 2024年1月3日