開始使用免費開始

建立參數網格

接下來,你需要建立一組要搜尋的數值網格,來尋找最佳的超參數。子模組 pyspark.ml.tuning 提供了名為 ParamGridBuilder 的類別正是用來做這件事的(你也許開始發現規律了:PySpark 幾乎每件事都有對應的子模組!)。

你將使用 .addGrid().build() 方法來建立可用於交叉驗證的網格。.addGrid() 方法需要一個模型參數(也就是你幾個練習前建立的模型 Estimatorlr 的屬性)以及一個你想嘗試的數值清單。 .build() 方法不需要任何引數,會回傳之後要用到的網格。

本練習屬於課程

PySpark 基礎

檢視課程

練習說明

  • 匯入子模組 pyspark.ml.tuning,並以別名 tune 使用。
  • 不帶引數呼叫類別建構子 ParamGridBuilder()。將結果存為 grid
  • grid 呼叫 .addGrid(),第一個引數為 lr.regParam,第二個引數為 np.arange(0, .1, .01)。第二個引數是從 numpy 模組(以 np 匯入)來的函式,會建立從 0 到 .1、以 .01 為間距的數列。用回傳結果覆寫 grid
  • 再次更新 grid:第二次呼叫 .addGrid(),為 lr.elasticNetParam 建立只包含 [0, 1] 的網格。
  • grid 呼叫 .build(),並以輸出結果覆寫它。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# 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()
編輯並執行程式碼