用語比較
GridSearchCVとRandomizedSearchCVの違い|全探索とランダム探索(Python3データ分析)
パラメータの値の組み合わせをすべて試すのが GridSearchCV、分布や候補から決まった回数だけ抽出して試すのが RandomizedSearchCV です。
どちらも交差検証で評価します。違いは、試す数を何で決めるかです。
この記事の目次
この記事の根拠と出典
各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。
GridSearchCVとRandomizedSearchCVの要点
GridSearchCV
公式の説明は「指定したパラメータ値に対する推定器の網羅的な探索」。param_grid の値の組み合わせを交差検証つきで試す。
RandomizedSearchCV
公式の説明は「ハイパーパラメータのランダム探索」。すべては試さず、固定された数の設定を分布から抽出する。回数は n_iter で決める。
違いを表で確認
| 比較軸 | GridSearchCV | RandomizedSearchCV |
|---|---|---|
| 試す組み合わせ | param_grid の値の組み合わせをすべて試す | すべては試さず、n_iter 個の設定を抽出して試す。n_iter の既定は 10 |
| パラメータの渡し方 | param_grid に、名前をキー、試す値のリストを値にした辞書(または辞書のリスト)を渡す | param_distributions に、分布またはリストを値にした辞書を渡す。分布は rvs メソッドを持つもの(scipy.stats の分布など) |
| 計算時間の決まり方 | 候補の数の積で決まる。パラメータを足すと増える | n_iter で決まる。公式は、n_iter が実行時間と解の質のトレードオフを決めると説明している |
| 乱数 | 探索に乱数の引数はない | random_state がある。リストからの一様な抽出の乱数で、整数を渡すと再現できる |
Python3エンジニア認定データ分析試験の学習に使う書籍(Amazon)
PRどこで迷っているかを切り分ける
候補の値が少なく、全部の組み合わせを確かめたい人
GridSearchCV を使います。param_grid に並べた組み合わせがすべて評価されます。
C やγのように、連続した値の範囲から探したい人
RandomizedSearchCV を使います。公式は、連続値のパラメータには連続分布を使うことを強く推奨しています。
探索に時間をかけられず、回数の上限を決めたい人
RandomizedSearchCV の n_iter で試す回数を決めます。回数を増やすほど解の質は上がり得ますが、実行時間も増えます。
具体例で使い分ける
例 1
GridSearchCV: 組み合わせの数
param_grid が {'C': [1, 10, 100], 'kernel': ['linear', 'rbf']} の場合を考えます。
- 候補は C が 3 通り、kernel が 2 通りで、組み合わせは 3 × 2 = 6 通りです。
- cv が 5 分割なら、6 通りのそれぞれを 5 回ずつ当てはめて評価します。
結論: GridSearchCV は、候補の積の数だけ試す。
例 2
RandomizedSearchCV: 試す回数
候補の組み合わせが数百通りあり、n_iter を指定しない場合を考えます。
- n_iter の既定は 10 なので、抽出された 10 個の設定だけが評価されます。
- リストだけで渡すと重複なしの抽出、分布を1つでも含むと重複ありの抽出になります。
結論: RandomizedSearchCV は、候補の総数によらず n_iter 回だけ試す。
例 3
探索のあとに使う属性
どちらも fit のあとで、最良の組み合わせを取り出します。
- best_params_ で最良のパラメータを取り出せます。
- refit=True(既定)なら、最良のパラメータで全データを再学習し、best_estimator_ に入ります。そのまま predict も使えます。
結論: 取り出し方は同じ。違うのは探索のしかただけ。
問題文から答えを選ぶ手順
- 1
候補の数を数える
値の組み合わせを数えて、全部試せる時間かを確かめます。
- 2
パラメータの種類を確認する
連続値の範囲から探すなら、分布を渡せる RandomizedSearchCV が向きます。
- 3
再現性を確認する
RandomizedSearchCV は random_state に整数を渡すと、同じ結果を再現できます。
試験での見分け方
- 1GridSearchCV は、指定した値の組み合わせをすべて交差検証で試す。
- 2RandomizedSearchCV は、n_iter 個の設定を抽出して試す。n_iter の既定は 10。
- 3RandomizedSearchCV は、リストなら重複なし、分布を含むなら重複ありで抽出する。
- 4どちらも refit=True が既定で、best_estimator_ に再学習した推定器が入る。
誤答しやすい選択肢
RandomizedSearchCV も全部の組み合わせを試すと考える
修正: 公式は、すべての値は試さず、固定された数の設定を抽出すると説明しています。回数は n_iter です。
GridSearchCV にも n_iter があると考える
修正: GridSearchCV の引数に n_iter はありません。試す数は param_grid の組み合わせで決まります。
最良の推定器は、別に再学習が必要だと考える
修正: refit の既定は True で、最良のパラメータで全データを再学習した推定器が best_estimator_ に入ります。
確認問題
Q1RandomizedSearchCV で試す設定の数を決める引数は?
答え: n_iter
公式は、n_iter が抽出するパラメータ設定の数で、実行時間と解の質のトレードオフを決めると説明しています。
Q2RandomizedSearchCV の n_iter の既定値は?
答え: 10
公式のシグネチャでは n_iter=10 です。
Q3GridSearchCV の説明として公式が使う表現は?
答え: 指定したパラメータ値に対する網羅的な探索
公式の冒頭の説明です。param_grid の組み合わせをすべて試します。
Q4refit=True のとき、再学習した最良の推定器が入る属性は?
答え: best_estimator_
公式は、再学習した推定器が best_estimator_ に入り、predict を直接使えると説明しています。
到達チェック
- GridSearchCV と RandomizedSearchCV の探索の違いを言える
- n_iter の意味と既定値を言える
- param_grid と param_distributions の違いを言える
- refit と best_estimator_ の関係を言える
関連ページで確認する
同じ資格で次に知りたいこと
- get_dummiesとOneHotEncoderの違い|pandasとscikit-learnのワンホット変換
pandasのget_dummiesとscikit-learnのOneHotEncoderの違いを、変換する対象、欠損値、未知のカテゴリの扱い、出力の型で整理します。公式の例で照合した確認問題つき。
- predictとpredict_probaの違い|クラスのラベルと確率(Python3データ分析)
scikit-learnの分類器のpredictとpredict_probaの違いを、返す値、配列の形、列の並び順、decision_functionとの関係で整理します。LogisticRegressionの公式の例で照合した確認問題つき。
- StandardScalerとMinMaxScalerの違い|平均0・分散1と0〜1の範囲(scikit-learn)
scikit-learnのStandardScalerとMinMaxScalerの違いを、変換の式、変換後の値の範囲、外れ値の影響、新しいデータの扱いで整理します。scikit-learn公式の例で照合した確認問題つき。
よくある質問
QGridSearchCV と RandomizedSearchCV の違いは?
GridSearchCV は指定した値の組み合わせをすべて試します。RandomizedSearchCV は、分布や候補から n_iter 個の設定を抽出して試します。
Qn_iter の既定値は?
RandomizedSearchCV の n_iter の既定値は 10 です。
Q最良のパラメータはどう取り出しますか?
どちらも fit のあとに best_params_ で取り出せます。refit=True なら best_estimator_ で再学習した推定器も使えます。
Qデータ分析試験の範囲?
本サイトの第6章scikit-learnで扱います。出題の形式や範囲は、受験前に公式の案内で確認してください。
次に見る比較
- G検定・DS検定・統計検定2級で重なる用語10語の比較
同じ名前の用語の定義と収録章を、資格ごとに並べます。
- ベイズの定理と条件付き確率の違い(統計検定2級の式と計算例)
求める確率の向きの違いと、陽性になる確率の計算例を確かめます。
- 紛らわしい用語ペア早見表
混同しやすい用語の違いと判定の手掛かりを、資格別の一覧で確かめます。
執筆: AI資格ドリル編集部(運営者情報を見る)
