Прогнозирование задержек рейсов с помощью машинного обучения

Узнайте о факторах, которые способствуют задержке рейсов, узнайте, как улучшить ситуацию

Посмотрите мое веб-приложение, которое покажет вам вероятность задержки вашего рейса здесь! Репо проекта здесь.

Как заядлый путешественник, я сталкивался с задержкой рейса или двумя за день. И я уверен, что многие из вас тоже.

Разве вы не хотели бы знать, насколько велика вероятность задержки вашего рейса? Вероятно, вы бы не (или не должны) опаздывать в аэропорт, но вы могли бы хотя бы прийти в такое состояние, в котором вы почти ожидаете задержки, и если ваш рейс вылетает вовремя, это здорово! Но обычно путешественники имеют противоположный настрой и очень расстраиваются из-за опоздания.

Имея это в виду, я глубоко погрузился в данные о рейсах, чтобы определить наиболее важные факторы, способствующие задержкам рейсов. И в конечном итоге я создал веб-приложение, которое может использовать любой, чтобы узнать вероятность задержки своего рейса.

Источники данных

Я получил данные из 4 разных источников.

  1. Все рейсы из Kaggle в США на 2015 год. Этот набор данных включал метку времени каждого рейса, авиакомпанию, аэропорты отправления и вылета, бортовой номер самолета и показатели задержки. Он содержит гигантские 5,8 миллиона полетов. Я сузил это число до 1,4 миллиона, сосредоточив внимание на 50 лучших аэропортах.
  2. Данные о погоде от NOAA. Это обеспечивало ежедневные сводки погоды за прошлые периоды. Снег, дождь, температура и ветер оказались полезными.
  3. Данные о самолетах от Airfleets, такие как производитель и модель самолета, информация о двигателе и дата первого полета.
  4. И, наконец, FlightAware API предоставил данные о полетах в реальном времени, чтобы сделать прогнозы в веб-приложении Streamlit.

Исследовательский анализ данных

Погода

Когда вы думаете о причинах задержки рейсов, первое, что приходит на ум, может быть погода. Это было для меня. И оказывается, что это действительно так. Как вы можете видеть ниже, любой снег увеличивает вероятность задержки вашего рейса в два раза . Дождь - тоже фактор, но не такой сильный.

Конечно, невозможно предсказать погоду, если вы бронируете рейс на 3 месяца раньше срока. Но если ваш рейс вылетает из Миннеаполиса в январе, не удивляйтесь.

Но оказывается, что снег на самом деле не лучший предсказатель. Эта честь достается последовательным задержкам рейсов одним и тем же самолетом. Если конкретный самолет, который будет использоваться на вашем рейсе, был задержан другим рейсом ранее в тот же день, вероятность того, что ваш рейс также будет задержан, составляет 46%. Вы, вероятно, не будете знать, на каком именно самолете вы собираетесь лететь, но ничего страшного, мое приложение может вам сказать!

Авиакомпании

Вы также, вероятно, умираете, чтобы подтвердить свое подозрение, что у некоторых авиакомпаний задерживается больше рейсов, чем у других. Ну подтвердите свои подозрения ниже!

Печально известные аэропорты

Мы можем провести такой же анализ по аэропортам. Извините, если вы летите через Чикаго или Нью-Йорк!

Сроки

Мы также видим сезонные закономерности: летние и зимние месяцы имеют больше задержек, чем весна и осень. Не слишком много различий между днями недели, но, похоже, лучше всего в субботу. Время дня становится очень интересным, но на самом деле имеет большой смысл. Если вы решили обменять сон на сбережения, вылетев рейсом в 5 часов утра, вы вполне могли быть вознаграждены без промедления. Но чем ближе к вечеру, тем больше задержек усугубляют друг друга.

И, наконец, еще один фактор - это сам самолет. Хотя я думал, что возраст самолетов будет иметь значение, в том, что новые и стареющие самолеты потребуют большего обслуживания, чем другие самолеты, оказалось, что это не так. Однако модель самолета и используемые двигатели сыграли свою роль.

Я использовал все эти факторы, чтобы обучить алгоритм машинного обучения, который мог предсказать вероятность задержки практически любого рейса. Учитывая, что 20% всех рейсов задерживаются, базовая модель будет предполагать, что каждый рейс не задерживается, и она будет точна на 80%! Но это скучно. Это сделало бы каждую фактическую задержку неверной. Имеет смысл найти компромисс между точным прогнозированием истинных задержек и истинного отсутствия задержек.

Я запустил четыре разных типа моделей: логистическая регрессия, случайный лес, гауссовский наивный байесовский анализ и XG Boost. В то время как Random Forest и XG Boost работали практически одинаково, XG Boost работал намного быстрее и поэтому использовался в продакшене. У него был показатель отзыва 49% по задержкам и 85% по неотложкам, что означает, что он правильно спрогнозировал почти половину истинных задержек, но все же предсказал более 80% базовых показателей отсутствия задержек.

Итак, вот оно что! Теперь вы знаете гораздо больше о факторах, которые способствуют задержкам рейсов, и, возможно, можете скорректировать свои планы, чтобы их избежать. Не стесняйтесь попробовать мое приложение на себе, но, пожалуйста, не опаздывайте в аэропорт, исходя из его прогнозов!

ПОПУЛЯРНЫЕ СТАТЬИ