前提・実現したいこと
グリッドサーチを行い、ハイパーパラメータが調整されたモデルで、未知のデータに対するモデルの性能を評価したいです。
そこで、以下の3つの方法が考えられるのですがこれらの方法は正しいでしょうか。また、この3つ以外に方法はあるのでしょうか。
なお、コードについては処理の流れを説明するためのものであり実際に動くコードにはなっていません。
よろしくお願いします。
該当のソースコード
1つ目 ホールドアウト法で評価する方法
python
1X_train, X_test,y_train, y_test = train_test_split(X,y, test_size=0.3, random_state=0) 2 3gscv = GridSearchCV( 4 RandomForestClassifier(), 5 params, 6 cv=5, 7 n_jobs=1, 8 verbose=2 9) 10gscv.fit(X_train, y_train) 11 12print('Accuracy: {}'.format(gscv.score(X_test, y_test)))
2つ目 ネストした交差検証で評価する方法
python
1gs = GridSearchCV(estimator=pipe_svc, 2 param_grid=param_grid, 3 scoring='accuracy', 4 cv=2) 5scores = cross_val_score(gs, X, y, 6 scoring='accuracy', cv=5) 7print('accuracy: %.3f +/- %.3f' % (np.mean(scores), 8 np.std(scores)))
3つ目 グリッドサーチ後、最適なパラメータで交差検証を行う方法
python
1X_train, X_test,y_train, y_test = train_test_split(X,y, test_size=0.3, random_state=0) 2 3gscv = GridSearchCV( 4 RandomForestClassifier(), 5 params, 6 cv=5, 7 n_jobs=1 8) 9gscv.fit(X_train, y_train) 10 11skf = StratifiedKFold(n_splits=5, shuffle=True, random_state=0) 12scores = cross_val_score(gscv.best_estimator_, X, y, cv=skf) 13 14print('Accuracy: {}'.format(scores.mean()))
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。