第7章:グリッドサーチ

公開日:2019-08-15
最終更新日:2019-08-26

skl07-0:準備
次のcurry2.csvは第5章で用いたBobのカレーに対する評価履歴データである.以下のデータをdataディレクトリに配置したうえで,次のコードを実行しよう.
  • curry2.csv:カレーに対する評価履歴データ(データIDid,辛さspicy {0-100},とろみthickness {0-100},評価値rating {0=嫌い, 1=好き}

skl07-1:パラメタ検証範囲の設定
Cgammaのパラメタ検証範囲をそれぞれ10^-6, 10^-5, ... 10^5, 10^6とし,それぞれCs, gammasとしよう.
難易度:★★
ミッション 説明
1 numpy.logspace()関数を使う.
2 Cのパラメタ検証範囲をCsとする.
3 gammaのパラメタ検証範囲をgammasとする.

skl07-2:GridSearchCVのインポート
GridSearchCVをインポートしよう.
難易度:★
ミッション 説明
1 GridSearchCVをインポートする.

skl07-3:GridSearchCVオブジェクトの生成
GridSearchCVオブジェクトを生成しよう.ここで,パラメタはestimator=svc, param_grid=dict(C=Cs, gamma=gammas)とする.
難易度:★★
ミッション 説明
1 GridSearchCV()コンストラクタを呼び出す.
2 estimatorパラメタを指定する.
3 param_gridパラメタを指定する.
4 生成したGridSearchCVオブジェクトをgsとする.

skl07-4:グリッドサーチの実行
データセットを基にgsにより学習しよう.
難易度:★★
ミッション 説明
1 GridSearchCV.fit()メソッドを使う.

skl07-5:パラメタCの最適値の取得
グリッドサーチにより得られたCの最適値を取得しよう.
難易度:★★
ミッション 説明
1 GridSearchCV.best_estimator_.C属性使う.
2 取得した最適値をC_bestとする.

skl07-6:パラメタgammaの最適値の取得
グリッドサーチにより得られたgammaの最適値を取得しよう.
難易度:★★
ミッション 説明
1 GridSearchCV.best_estimator_.gamma属性使う.
2 取得した最適値をgamma_bestとする.

skl07-7:最適パラメタによるSVCオブジェクトの生成
グリッドサーチにより得られた最適パラメタC_bestgamma_bestを使ってSVCオブジェクトを生成しよう.ここで,パラメタはkernel='rbf', C=C_best, gamma=gamma_bestとする.
難易度:★★
ミッション 説明
1 SVC()コンストラクタを呼び出す.
2 kernelパラメタを指定する.
3 Cパラメタを指定する.
4 gammaパラメタを指定する.
5 生成したSVCオブジェクトをsvc_bestとする.

skl07-8:交差検証
svc_bestによりデータセットに対して5分割交差検証による5回分のスコアを取得しよう.ここで,パラメタはcv=k_fold, scoring='accuracy'とする.
難易度:★★
ミッション 説明
1 KFoldをインポートする.
2 cross_val_scoreをインポートする.
3 KFold()コンストラクタを呼び出す.
4 生成したKFoldオブジェクトをk_foldとする.
5 cross_val_score()関数を使う.
5 cvパラメタを指定する.
6 scoringパラメタを指定する.

skl07-9:学習モデルの可視化
次のコードはsvc_bestによる学習モデルを可視化するものである.次のコードをskl07_plt.pyというファイル名で保存し,python3コマンドで実行しよう.

難易度:★
ミッション 説明
1 python3コマンドでskl07_plt.pyを実行する.