Tworzenie siatki
Teraz musisz utworzyć siatkę wartości, które zostaną przeszukane podczas szukania optymalnych hiperparametrów. Submoduł pyspark.ml.tuning zawiera klasę ParamGridBuilder, która robi dokładnie to (może zaczynasz już dostrzegać pewien wzorzec – PySpark ma submoduł niemal do wszystkiego!).
Do zbudowania siatki, której użyjesz podczas kroswalidacji, potrzebne będą metody .addGrid() i .build(). Metoda .addGrid() przyjmuje parametr modelu (atrybut estymatora lr, który był tworzony kilka ćwiczeń wcześniej) oraz listę wartości do przetestowania.
Metoda .build() nie przyjmuje żadnych argumentów – po prostu zwraca gotową siatkę do dalszego użycia.
To ćwiczenie jest częścią kursu
Podstawy PySpark
Instrukcje do ćwiczenia
- Zaimportuj submoduł
pyspark.ml.tuningpod aliasemtune. - Wywołaj konstruktor klasy
ParamGridBuilder()bez argumentów i zapisz wynik jakogrid. - Wywołaj metodę
.addGrid()na obiekciegrid, podająclr.regParamjako pierwszy argument inp.arange(0, .1, .01)jako drugi argument. Ten drugi argument to funkcja z modułunumpy(zaimportowanegoas np), która tworzy listę liczb od 0 do 0,1 z krokiem 0,01. Nadpisz zmiennągridotrzymanym wynikiem. - Zaktualizuj
grid, wywołując ponownie metodę.addGrid()– tym razem utwórz siatkę dlalr.elasticNetParamzawierającą tylko wartości[0, 1]. - Wywołaj metodę
.build()na obiekciegridi nadpisz go otrzymanym wynikiem.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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()