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

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

新規登録して質問してみよう
ただいま回答率
85.48%
機械学習

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

Python

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

Q&A

1回答

3589閲覧

SVMのグリッドサーチの結果がおかしい

python_2019

総合スコア68

機械学習

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

Python

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

0グッド

0クリップ

投稿2020/05/20 00:59

①SVMのグリッドサーチでBESTパラメータを取得
②同時にBESTスコアを取得(0.860655737704918)
③再度、BESTパラメータを再設定して学習
④スコアを取得(0.8064516129032258)

この②と④のスコア値が異なるのはなぜでしょうか?

from sklearn.svm import SVC from sklearn.model_selection import GridSearchCV param_grid = {'C': [0.01,0.1, 1,2,3,4,5,10,50,100, 1000], 'gamma': [100,10,5,3,1,0.5,0.1,0.05,0.01,0.005,0.001,0.0005,0.0001], 'kernel': ['rbf']} #'kernel': ['linear']}  clf = GridSearchCV(SVC(), param_grid, refit = True, verbose = 0, cv=5) # 訓練データとラベルで学習 clf.fit(x_train_std, y_train) # 最も良いパラメータとスコア print(clf.best_params_) print(clf.best_score_)
{'C': 1, 'gamma': 0.1, 'kernel': 'rbf'} 0.860655737704918
# BESTパラメータを再設定 clf = clf.best_estimator_ # 訓練データとラベルで再度学習 clf.fit(x_train_std, y_train)
VC(C=1, cache_size=200, class_weight=None, coef0=0.0, decision_function_shape='ovr', degree=3, gamma=0.1, kernel='rbf', max_iter=-1, probability=False, random_state=None, shrinking=True, tol=0.001, verbose=False)
# BESTパラメータでの正解率   accuracy = clf.score(x_test_std, y_test) print(accuracy)
0.8064516129032258

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

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

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

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

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

guest

回答1

0

best_score_は学習データの交差検証によって求めたスコアですので、テストデータでの評価と一致しないのは正常な結果です。もちろんテストデータを予測したときの性能を正確に見積もれるに越したことはないのですが、これは言うほど簡単ではありません。

best_score_ float
Mean cross-validated score of the best_estimator

For multi-metric evaluation, this is present only if refit is specified.

This attribute is not available if refit is a function.
sklearn.model_selection.GridSearchCV — scikit-learn 0.23.1 documentation

投稿2020/05/20 01:28

hayataka2049

総合スコア30933

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

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

python_2019

2020/05/20 05:13

ご回答ありがとうございます。 トレーニングデータで得たbestパラメータを用いた場合の、テストデータのスコアは、値は違ってもやはりbestなのでしょうか?
hayataka2049

2020/05/20 07:37

それはトレーニングデータとテストデータが同じ性質のデータとみなせるかどうかにかかっています。 実際のところは、学習データで決めたパラメータ(ハイパーパラメータも含めて)よりテストデータで良い予測を行えるパラメータというものも存在するはずですが、それを考えることには意味がありません(学習時にテストデータは使えないので)。
python_2019

2020/05/20 08:37

ご連絡ありがとうございます。 「場合による」ということなのですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問