始める無料で始める

グリッドを作る

次に、最適なハイパーパラメータを探索するための値のグリッドを作成します。サブモジュール 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()
コードを編集して実行