Analiza najlepszego modelu czasu trwania lotu
Właśnie skonfigurowano obiekt CrossValidator w celu znalezienia dobrych parametrów dla modelu regresji liniowej przewidującego czas trwania lotu.
Potok modelu składa się z wielu etapów (obiektów typu StringIndexer, OneHotEncoder, VectorAssembler i LinearRegression), które są wykonywane kolejno. Etapy są dostępne jako atrybut stages obiektu potoku. Są one reprezentowane przez listę, a kolejność ich wykonania odpowiada kolejności na tej liście.
Teraz przyjrzysz się bliżej temu potokowi: wyodrębnisz poszczególne etapy i użyjesz modelu do generowania predykcji na danych testowych.
Następujące obiekty zostały już utworzone:
cv— wytrenowany obiektCrossValidatorModelorazevaluator— obiektRegressionEvaluator.
Dane dotyczące lotów zostały losowo podzielone na zbiory flights_train i flights_test.
To ćwiczenie jest częścią kursu
Uczenie maszynowe z PySpark
Instrukcje do ćwiczenia
- Pobierz najlepszy model.
- Sprawdź etapy wchodzące w skład najlepszego modelu.
- Wyodrębnij etap regresji liniowej i pobierz jego parametry.
- Użyj najlepszego modelu do wygenerowania predykcji na danych testowych i oblicz RMSE.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Get the best model from cross validation
best_model = cv.____
# Look at the stages in the best model
print(best_model.____)
# Get the parameters for the LinearRegression object in the best model
best_model.____.extractParamMap()
# Generate predictions on testing data using the best model then calculate RMSE
predictions = ____.____(____)
print("RMSE =", ____.____(____))