ランダムフォレストのグリッドサーチをランダムサーチに変更したコード
了解しました。以下に、ランダムフォレストのグリッドサーチをランダムサーチに変更したコードを示します。
python
from sklearn.model_selection import RandomizedSearchCV
from scipy.stats import randint
# パラメータグリッドの定義
param_dist = {
'n_estimators': randint(100, 1000), # 100から1000の間でランダムに選択
'max_features': ['auto', 'sqrt'],
'max_depth': randint(10, 100), # 10から100の間でランダムに選択
'min_samples_split': randint(2, 20), # 2から20の間でランダムに選択
'min_samples_leaf': randint(1, 20), # 1から20の間でランダムに選択
'bootstrap': [True, False]
}
# ランダムサーチを用いて探索
random_search = RandomizedSearchCV(rf_classifier, param_distributions=param_dist, n_iter=100, cv=5, random_state=42)
random_search.fit(X_rf_train, y_train)
# 最適なモデルを取得
best_rf_model = random_search.best_estimator_
# テストデータでの予測と評価
y_pred_rf = best_rf_model.predict(X_rf_test)
accuracy_rf = accuracy_score(y_test, y_pred_rf)
print("Random Forest Accuracy:", accuracy_rf)
print("Random Forest Classification Report:")
print(classification_report(y_test, y_pred_rf))
# テストデータでの予測確率を取得
y_proba_rf = best_rf_model.predict_proba(X_rf_test)
# AUCの計算
auc_rf = roc_auc_score(y_test, y_proba_rf, multi_class='ovr') # 多クラスの場合は'multi_class'を指定
print("Random Forest AUC:", auc_rf)
このコードでは、RandomizedSearchCVを使ってランダムサーチを実行し、ランダムにパラメータ値を選択して最適なモデルを探索します。n_iterパラメータで探索する回数を設定します。

ディスカッション
コメント一覧
まだ、コメントがありません