Faça uma grade
Em seguida, você precisa criar uma grade de valores para pesquisar ao procurar os hiperparâmetros ideais. O submódulo pyspark.ml.tuning
inclui uma classe chamada ParamGridBuilder
que faz exatamente isso (talvez você esteja começando a perceber um padrão aqui: o PySpark tem um submódulo para quase tudo!)
Você precisa usar os métodos .addGrid()
e .build()
para criar uma grade que possa ser usada para validação cruzada. O método .addGrid()
recebe um parâmetro de modelo (um atributo do modelo Estimator
, lr
, que você criou há alguns exercícios) e uma lista de valores que você deseja testar.
O método .build()
não recebe argumentos. Ele apenas retorna a grade que você usará posteriormente.
Este exercício faz parte do curso
Introdução ao PySpark
Instruções do exercício
- Importe o submódulo
pyspark.ml.tuning
com o nome alternativotune
. - Chame o construtor da classe
ParamGridBuilder()
sem argumentos. Salve o resultado comogrid
. - Chame o método
.addGrid()
emgrid
comlr.regParam
como primeiro argumento enp.arange(0, .1, .01)
como segundo argumento. Essa segunda chamada é uma função do módulonumpy
(importadoas np
) que cria uma lista de números de 0 a 0,1, com incrementos de 0,01. Substituagrid
pelo resultado. - Atualize
grid
novamente chamando o método.addGrid()
uma segunda vez. Crie uma grade paralr.elasticNetParam
que inclua apenas os valores[0, 1]
. - Chame o método
.build()
comgrid
e substitua-o pela saída.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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()