Zacznij terazZacznij za darmo

Kroswalidacja potoku modelu czasu trwania lotu

Model z kroswalidacją, który przed chwilą zbudowałeś, był prosty – do przewidywania wartości duration używał jedynie zmiennej km.

Innym ważnym predyktorem czasu trwania lotu jest lotnisko wylotu. Z reguły start z ruchliwych lotnisk zajmuje więcej czasu. Sprawdźmy, czy dodanie tego predyktora poprawi model!

W tym ćwiczeniu dodasz pole org do modelu. Ponieważ org jest zmienną kategoryczną, trzeba ją najpierw odpowiednio przetworzyć: przekształcić na indeks, a następnie zakodować metodą one-hot, zanim będzie można połączyć ją z km i użyć do zbudowania modelu regresji. Wszystkie te operacje ujmiemy w potok.

Następujące obiekty zostały już utworzone:

  • params — pusty siatkę parametrów
  • evaluator — ewaluator regresji
  • regression — obiekt LinearRegression z labelCol='duration'.

Klasy StringIndexer, OneHotEncoder, VectorAssembler i CrossValidator zostały już zaimportowane.

To ćwiczenie jest częścią kursu

Uczenie maszynowe z PySpark

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz indekser ciągów znaków. Wskaż pole wejściowe jako org, a pole wyjściowe jako org_idx.
  • Utwórz koder one-hot. Nadaj polu wyjściowemu nazwę org_dummy.
  • Połącz pola km i org_dummy w jedno pole o nazwie features.
  • Utwórz potok, korzystając z następujących operacji: indekser ciągów znaków, koder one-hot, asembler i regresja liniowa. Użyj go do utworzenia kroswalidatora.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# Create an indexer for the org field
indexer = ____(____, ____)

# Create an one-hot encoder for the indexed org field
onehot = ____(____, ____)

# Assemble the km and one-hot encoded fields
assembler = ____(____, ____)

# Create a pipeline and cross-validator.
pipeline = ____(stages=[____, ____, ____, ____])
cv = ____(estimator=____,
          estimatorParamMaps=____,
          evaluator=____)
Edytuj i uruchom kod