Создание сетки параметров
Теперь нужно создать сетку значений для поиска оптимальных гиперпараметров. Подмодуль pyspark.ml.tuning содержит класс ParamGridBuilder, который делает именно это (возможно, вы уже начинаете замечать закономерность: в PySpark есть подмодуль практически для любой задачи!).
Вам потребуются методы .addGrid() и .build(), чтобы построить сетку для дальнейшей кросс-валидации. Метод .addGrid() принимает параметр модели (атрибут объекта Estimator — lr, который вы создали несколько упражнений назад) и список значений, которые нужно перебрать.
Метод .build() не принимает аргументов — он просто возвращает готовую сетку, которая понадобится позже.
Это упражнение является частью курса
Основы PySpark
Инструкции к упражнению
- Импортируйте подмодуль
pyspark.ml.tuningпод псевдонимомtune. - Вызовите конструктор класса
ParamGridBuilder()без аргументов и сохраните результат в переменнуюgrid. - Вызовите метод
.addGrid()на объектеgrid, передавlr.regParamпервым аргументом иnp.arange(0, .1, .01)вторым. Второй аргумент — функция из модуляnumpy(импортированногоas np), которая формирует список чисел от 0 до 0,1 с шагом 0,01. Перезапишитеgridрезультатом этого вызова. - Снова обновите
grid, вызвав метод.addGrid()повторно: создайте сетку дляlr.elasticNetParamсо значениями[0, 1]. - Вызовите метод
.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()