Модель продолжительности рейса: больше признаков!
Давайте добавим в нашу модель больше признаков. Это не обязательно сделает её лучше: одни признаки могут улучшить результат, другие — ухудшить.
Чем больше признаков, тем сложнее модель и тем труднее её интерпретировать.
Вот признаки, которые войдут в следующую модель:
kmorg(аэропорт вылета, унитарное кодирование, 8 уровней)depart(время вылета, разбитое на трёхчасовые интервалы, унитарное кодирование, 8 уровней)dow(день недели вылета, унитарное кодирование, 7 уровней) иmon(месяц вылета, унитарное кодирование, 12 уровней).
Все они объединены в столбец features, который представляет собой разреженное представление из 32 столбцов (напомним, что унитарное кодирование создаёт число столбцов на один меньше, чем количество уровней).
Данные доступны в виде flights и случайным образом разделены на flights_train и flights_test.
Это упражнение основано на небольшом подмножестве данных о рейсах.
Это упражнение является частью курса
Машинное обучение с PySpark
Инструкции к упражнению
- Обучите модель линейной регрессии на обучающих данных.
- Сгенерируйте прогнозы для тестовых данных.
- Вычислите значение RMSE на тестовых данных.
- Изучите коэффициенты модели. Есть ли среди них нулевые?
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
from pyspark.ml.regression import ____
from pyspark.ml.evaluation import ____
# Fit linear regression model to training data
regression = ____(____).____(____)
# Make predictions on testing data
predictions = regression.____(____)
# Calculate the RMSE on testing data
rmse = ____(____).____(____)
print("The test RMSE is", rmse)
# Look at the model coefficients
coeffs = regression.____
print(coeffs)