Прогнозирование задержек рейсов (теперь с PixieDust)

Пару месяцев назад Дэвид Тайеб составил руководство по Прогнозированию задержек рейсов с помощью Apache Spark MLLib, FlightStats и данных о погоде. В сиквеле мы посыпаем его оригинальное решение PixieDust, и результат - чистая магия.

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

Контрольный список перед полетом

Прежде чем выполнять действия, описанные в этой публикации, просмотрите руководство Прогнозирование задержек рейсов с Apache Spark MLLib, FlightStats и погодными данными. Как минимум, вы должны выполнить следующие шаги из этого руководства:

✓ Настройте учетную запись FlightStats (ОБЯЗАТЕЛЬНО! В первом руководстве вы могли пропустить этот шаг, но эти учетные данные вам понадобятся для запуска этого ноутбука.)

✓ Предоставить услугу Данные метеорологической компании.

✓ Получите или создайте наборы данных для обучения и тестирования.

Как только вы это сделаете, вы можете приступить к этому руководству, которое представляет собой прогон моей записной книжки Flight Predict with PixieDust, которую вы можете запустить из IBM Data Science Experience (DSX) или из локальной записной книжки Jupyter. среда (с Spark 1.6.x и Python 2.x).

Разрешение на взлет

Хотя вы можете запустить приложение из любой среды Jupyter Notebook, я использовал IBM Data Science Experience. Первый шаг - загрузить блокнот Flight Predict with PixieDust в DSX:

Примечание. Для достижения наилучших результатов используйте последнюю версию Mozilla Firefox или Google Chrome.

  1. Войдите в DSX.
  2. Создайте новый проект (или выберите существующий).
  3. В правом верхнем углу экрана нажмите на знак + плюс и выберите Создать проект.

Добавить новую записную книжку (из URL-адреса) в проект

  1. Нажмите добавить записные книжки.
  2. Нажмите Из URL.
  3. Введите имя записной книжки
  4. Введите URL-адрес записной книжки: https://raw.githubusercontent.com/ibm-cds-labs/simple-data-pipe-connector-flightstats/master/notebook/Flight%20Predict%20with%20Pixiedust.ipynb
  5. Выберите Spark Service.
  6. Нажмите Создать блокнот.

Если будет предложено, выберите ядро ​​для ноутбука. Ноутбук должен успешно импортироваться.

Летайте через ноутбук

Пройдитесь по каждой ячейке записной книжки по порядку.

Когда вы используете записную книжку в DSX, вы можете запустить ячейку, только выбрав ее, затем перейдя на панель инструментов и нажав кнопку Выполнить ячейку (▸). Если вы не видите панель инструментов Jupyter с этой кнопкой запуска и другими элементами управления записной книжкой, значит, вы не находитесь в режиме редактирования. Перейдите на темно-синюю панель инструментов над записной книжкой и щелкните значок редактирования (карандаш).

Пройдитесь по записной книжке, прогоняя каждую ячейку кода.

  1. Установите PixieDust и его плагин flightpredict.
    Запустите первые 2 ячейки, которые устанавливают и обновляют pixiedust и pixiedust-flightpredict плагин.
  2. Перезагрузите ядро.
    В меню выберите Ядро ›Перезагрузить.
  3. Запустите следующую ячейку, чтобы импортировать пакет python и запустить панель конфигурации:
    import pixiedust_flightpredict pixiedust_flightpredict.configure()
    Панель мониторинга проверяет текущий статус приложения и помогает выполнить настройку.
  4. Добавьте учетные данные и обновите неправильные или отсутствующие данные (значок x).
    В правом верхнем углу списка панели инструментов нажмите кнопку Изменить конфигурацию. Введите учетные данные, полученные при прохождении первого урока.
    Чтобы сохранить, нажмите кнопку Сохранить конфигурацию. Панель управления обновится, чтобы отобразить завершенные данные.
  5. Чтобы создать ячейку с кодом для загрузки данных обучения, нажмите Создать код ячейки для загрузки данных обучения.
    Новая ячейка появится под панелью управления.
  6. Перейдите к вновь созданной ячейке и запустите ячейку. Результатом ячейки является визуализация обучающих данных PixieDust, которую вы можете просматривать в различных форматах, а также загружать или сохранять в Cloudant или Object Store.
  7. Повторно запустите ячейку панели мониторинга конфигурации, которую вы запустили на шаге 3, и она обновится, показывая, что вы загрузили данные тренировки.
  8. Завершите настройку.
    Продолжайте движение по панели инструментов, нажимая каждую кнопку Создать код ячейки для загрузки, а затем запускать новую ячейку, которая появляется под панелью управления. Повторите эти действия для каждой оставшейся незавершенной задачи, за исключением настраиваемого обработчика, который не является обязательным. (Вы можете использовать ячейку настраиваемого обработчика, чтобы предоставить новую классификацию и функции. Например, вы можете захотеть включить функцию день отъезда.)
  9. Чтобы убедиться, что вы выполнили все шаги, вы можете снова запустить ячейку панели инструментов. Для всех записей в разделе Требуется действие должно быть указано Нет (кроме настраиваемого обработчика, который не является обязательным).

Обучите и оцените модели

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

  1. Теперь, когда ваши данные загружены, перейдите в раздел Обучение нескольких моделей классификации и запустите каждую из четырех ячеек кода.
  2. Запустите ячейку display(testData), чтобы оценить модели.

Плагин pixiedust-flightpredict создает настраиваемое раскрывающееся меню самолета, которое позволяет:

  • Измеряйте точность с помощью таблицы точности и матриц ошибок, о которых вы читали в первом руководстве. Опять же, вы можете использовать этот инструмент, чтобы оценить производительность и решить, нужны ли дополнительные данные для обучения или нужно изменить классы.
  • См. Гистограмму, показывающую распределение вероятностей.
  • Визуализируйте особенности (результаты) на диаграмме рассеяния.

PixieDust предоставляет API, с помощью которого любой может легко добавить новый плагин визуализации, такой как это изящное меню плоскости. Вы также можете расширить PixieDust с помощью специальных функций, которые соответствуют вашим потребностям. Следите за обновлениями, чтобы увидеть учебники и документы, в которых объясняется, как написать собственный плагин.

Запустите модели

Теперь модели прогнозирования созданы, и пора запустить приложение для прогнозирования задержки рейсов. В разделе Запустить приложение прогнозной модели запустите ячейку. (Вы можете изменить исходный код аэропорта, LAS, на другой город, если хотите. Вы также сможете сделать это в запущенном приложении.)

import pixiedust_flightpredict
from pixiedust_flightpredict import *
pixiedust_flightpredict.flightPredict("LAS")

Введите информацию о рейсе и нажмите Продолжить.

Вы увидите прогнозы задержки на основе моделей, прогноз погоды для каждого аэропорта и карту маршрута полета:

Отсюда вы можете Начать заново, чтобы ввести новую информацию о рейсе, или Перейти в блокнот, чтобы вернуться в блокнот.

Что из этого можно сделать

Запустите последнюю ячейку кода в записной книжке, которая отображает карту с агрегированным представлением всех рейсов, которые приложение провело поиском:

  • Нажмите на аэропорт, чтобы увидеть все исходящие рейсы
  • Нажмите на маршрут полета, чтобы просмотреть список рейсов и количество пассажиров, которые искали конкретный рейс.

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

Теперь вы можете свободно перемещаться по кабине

Прогнозирование задержек рейсов на основе погоды с помощью машинного обучения началось как способ продемонстрировать гибкость ноутбука. Однако с включением PixieDust визуализировать данные стало еще проще. В общем, вы можете создать пользовательский интерфейс и сделать его полноценным приложением. Вы можете загружать, обрабатывать и представлять данные в записной книжке.

PixieDust - это проект с открытым исходным кодом, призванный улучшить работу с ноутбуком. Вы найдете много рекомендаций в его репозитории GitHub. Приглашаем всех принять участие, и приветствуем пул-реквесты! Мы можем устроить парад и подать горячие закуски…