グリッドを作る
次に、最適なハイパーパラメータを探索するための値のグリッドを作成します。サブモジュール pyspark.ml.tuning には、まさにそれを行う ParamGridBuilder クラスがあります(もうおわかりかもしれませんが、PySpark にはほぼ何でも揃うサブモジュールがあります)。
交差検証で使うグリッドを作るには、.addGrid() と .build() メソッドを使います。.addGrid() は、モデルのパラメータ(数問前で作成した Estimator である lr の属性)と、試したい値のリストを受け取ります。
.build() メソッドは引数を取りません。後で使うグリッドを返すだけです。
この演習はコースの一部です
PySpark入門
演習の手順
- サブモジュール
pyspark.ml.tuningをエイリアスtuneでインポートします。 - 引数なしでクラスコンストラクタ
ParamGridBuilder()を呼び出し、gridとして保存します。 gridに対して.addGrid()を呼び出し、最初の引数にlr.regParam、2番目の引数にnp.arange(0, .1, .01)を渡します。これはnumpyモジュール(npとしてインポート)にある関数で、0 から .1 までを .01 刻みで並べた数値のリストを作成します。戻り値でgridを上書きします。.addGrid()をもう一度呼び出してlr.elasticNetParam用のグリッドを作成し、値は[0, 1]のみを含めるようにして、再度gridを更新します。gridに対して.build()メソッドを呼び出し、その出力でgridを上書きします。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import the tuning submodule
import ____ as ____
# Create the parameter grid
grid = tune.____
# Add the hyperparameter
grid = grid.addGrid(____, np.arange(0, .1, .01))
grid = grid.addGrid(____, ____)
# Build the grid
grid = grid.build()