質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
scikit-learn

scikit-learnは、Pythonで使用できるオープンソースプロジェクトの機械学習用ライブラリです。多くの機械学習アルゴリズムが実装されていますが、どのアルゴリズムも同じような書き方で利用できます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1679閲覧

機械学習でハイパーパラメータが最適化されたモデルで性能評価を行う方法

jdoi

総合スコア1

scikit-learn

scikit-learnは、Pythonで使用できるオープンソースプロジェクトの機械学習用ライブラリです。多くの機械学習アルゴリズムが実装されていますが、どのアルゴリズムも同じような書き方で利用できます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/06/19 12:27

前提・実現したいこと

グリッドサーチを行い、ハイパーパラメータが調整されたモデルで、未知のデータに対するモデルの性能を評価したいです。

そこで、以下の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()))

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

一律に「このn個の手法が正解です」というのはありません。
一般的な方法はありますが、精度向上のため常に新しい方法(全く新種というより既存の手法の組み合わせ)が編み出されています。

Kaggleのサイトなどを読まれるといいでしょう。常に新しい手法が提案されています。
日本語の記事も多数ありますが、ここらへんあまり取り組まれていないならば入門としては
『Kaggleで勝つデータ分析の技術』
などを読まれるとよいかと思います。

投稿2020/06/27 00:38

aokikenichi

総合スコア2218

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問