Создание ИТ-сервиса, позволяющего с помощью алгоритмов машинного обучения прогнозировать вероятность возникновения задержек авиарейсов

Сбор и агрегация исторических данных о регулярных рейсах авиакомпаний. Особенность создания модели машинного обучения для предсказания вероятности отмены маршрута. Характеристика формирования ИТ-сервиса для предоставления доступа к предиктивной модели.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 09.08.2018
Размер файла 948,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Содержание

Введение

Глава 1. Теоретические основы процесса создания моделей классификации в машинном обучении

1.1 Обзор литературы на тему исследования

1.2 Анализ существующих предиктивных решений в авиационной индустрии

1.3 Методы и алгоритмы машинного обучения для анализа данных

1.4 Обзор библиотек и фреймворков использованных в работе

Глава 2. Сбор и агрегация погодных и исторических данных о регулярных рейсах авиакомпаний

2.1 Сбор и агрегация исторических данных о регулярных рейсах авиакомпаний

2.2 Сбор и агрегация погодной информации

2.3 Агрегация исторических и погодных данных

Глава 3. Создание модели машинного обучения для предсказания вероятности отмены рейса

3.1 Первоначальный анализ собранных данных

3.2 Предобработка данных

3.3 Обучение моделей машинного обучения

Глава 4. Формирование ИТ-сервиса для предоставления доступа сторонним программным решениям с использование программного интерфейса API к построенной модели предсказания статуса рейсов

4.1 Формирование ИТ-сервиса для предоставления доступа к предиктивной модели

4.2 Проверка качества работы сформированного ИТ-сервиса

4.3 Оценка возможных выгод для бизнеса от внедрения предиктивной модели

Заключение

Список использованной литературы

Приложение

Введение

Актуальность

Современный мир развивается с недостижимой ранее скоростью, внедряя все новые и новые технологии в наши жизни, существенно меняя существующие устои. Так, благодаря развитию технологий, в последние десятилетия отношения между странами и континентами становятся все ближе, стирая все возможные границы и барьеры для сотрудничества. Одним из ключевых факторов тенденции сближения является бурное развитие авиационной индустрии, услуги которой стали основой большинства бизнес-путешествий по всему миру. С начала 2000 года количество пассажиров на регулярных рейcах выросло более чем на 65%, а количество инцидентов на них снизилось на 40%. Тем не менее, несмотря на бурное количественное и качественное развитие авиации, существенная доля рейсов все еще происходит с задержками. В зависимости от направления и авиакомпании, до 20% всех рейсов выполняются с задержками. Данное положение дел является не только неудобным для путешественников, но и недопустимым для международных компаний - любая задержка ведет к увеличению операционных расходов, приводя к финансовым потерям. По этой причине, бизнес рассматривает любые задержки авиаперелетов как существенный риск для своих бизнес-операций, пытаясь максимально снизить возможные угрозы.

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

Новизна и практическая значимость исследования

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

Благодаря использованию данного сервиса, организации смогут минимизировать риски, связанные с задержками поездок, а, следовательно, и затраты на осуществление перевозок своих сотрудников.

Анализ степени разработанности проблемы

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

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

Тема исследования

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

Объект исследования

Объектом исследования работы является процесс организации бизнес-путешествий с использованием услуг регулярных рейсов авиакомпаний.

Предмет исследования

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

Цель исследования

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

Задачи исследования

Для достижения поставленной цели были определены следующие задачи:

· анализ рынка данных, представляющих авиационную статистику и исторические данные по перелетам за прошлые периоды;

· анализ рынка ИТ сервисов по предоставлению погодных данных за указанный период времени;

· рассмотрение основных алгоритмов и методов машинного обучения для осуществления предобработки данных и классификации данных;

· создание механизма для сбора, предварительной обработки, и агрегации авиационных и погодных данных в общее хранилище данных;

· осуществление предобработки собранных ранее данных, исключение неполных данных. Дифференциация данных по аэропорту вылета для упрощения создания общего классификатора;

· разработка и обучение ряда моделей классификации на небольшой выборке данных с целью выбора наиболее качественной модели машинного обучения;

· проведение оценки полученных классификаторов и выбор модели, наиболее точно описывающей данные;

· обучение выбранного классификатора на всей выборке данных и получение финальных моделей классификаторов;

· создание ИТ сервиса для обеспечения удаленного доступа к полученным моделям и предсказания статуса рейса с использованием методов API (Application programming interface, программный интерфейс приложения).

Методы и технологии исследования

Для решения поставленных задач был использован широкий спектр современных технологий и подходов. Для создания предиктивной аналитической модели использовались методы Data mining для сбора и анализа данных, а также статистические методы для оценки и поиска связей в обрабатываемых данных. Эти методы применялись для оптимизации внутренних реализаций методов машинного обучения, использованных в данной работе.

Создание финального ИТ-сервиса было выполнено с помощью таких технологий и программных продуктов:

· Jupyter Notebook - фреймворк для написания кода на языке Python, оптимизированный для решения задач машинного обучения;

· IntelliJ PyCharm - среда разработки на языке программирования Python;

· Flask - популярный фреймворк для веб-разработки на языке Python;

· Scikit-learn - крупнейшая Python библиотека для осуществления обработки и анализа данных;

· Pandas - библиотека для работы с большими объемами данных в среде Python;

· Atom - комплексный текстовый редактор, способный работать с очень большими объемами данных.

Краткое содержание глав

Описание реализации поставленной цели и задач в основной части данной работе будет структурировано по следующим главам:

· Теоретические основы процесса создания моделей классификации в машинном обучении.

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

· Сбор и агрегация погодных и исторических данных о регулярных рейсах авиакомпаний.

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

· Создание модели машинного обучения для предсказания вероятности отмены рейса. Будут рассмотрены вопросы предобработки собранных данных, обучения моделей машинного обучения, а также произведена оценка качества предсказания полученных моделей.

· Формирование ИТ-сервиса для предоставления доступа сторонним программным решениям с использование программного интерфейса API к построенной модели предсказания статуса рейсов.

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

В заключении работы описаны полученные результаты и сделаны выводы о достижении поставленной цели.

Глава 1. Теоретические основы процесса создания моделей классификации в машинном обучении

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

1.1 Обзор литературы на тему исследования

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

В первую очередь важно отметить исследование Dorian Pyle, отраженное в его работе «Data Preparation for Data Mining» (Dorian Pyle, 2007). В этом труде автор описывает способы предварительной обработки данных и упоминает различные подходы к обработке данных, включая методы обработки категориальных переменных и вопросы нормализации. Несмотря на то, что работа была написана десять лет назад, она по-прежнему актуальна и полезна для изучения способов подготовки данных для анализа.

Также важно указать еще одну работу по подготовке данных - работу Vipin Kumar «Feature Selection: A Literature Review» (Vipin Kumar, 2014). В этом исследовании автор проводит полный анализ методов выбора признаков для построения модели и описывает основные математические принципы существующих алгоритмов. Применение методов уменьшения размерности данных помогает уменьшить количество описывающих переменных и, как следствие, ускорить время подбора модели классификатора. Кроме того, он помогает улучшить качество конечного классификатора и снижает вероятность переобучения модели. Очевидно, что применение описанных выше подходов способно повысить качество данных, использованных в исследовании, и, как следствие, улучшить общее качество классификации модели.

В работе по машинному обучению и анализу данных - «Data Mining and Analysis: Fundamental Concepts and Algorithms» Mohammed J. Zaki Wagner Meira Jr. (Mohammed J. Zaki Wagner Meira Jr., 2014) рассматривается широкий спектр тем, начиная с теоретических основ статистики и заканчивая путями создания сложных классификаторов. Авторы описывают такие широко используемые группы классификационных алгоритмов, как вероятностные классификаторы, решающие деревья, линейные классификаторы и SVM. Эти методы имеют разные внутренние реализации, но решают одни и те же задачи - задачи автоматической классификации объектов между конечным числом выбранных групп объектов по тем же характеристикам объекта. Описание методов включает в себя не только теорию, но и большое количество графиков для визуализации процесса обучения модели. Кроме того, книга содержит обзор широкого спектра скоринговых моделей для проверки качества созданной модели классификации. К ним относятся оценки эффективности классификации и оценки классификаторов.

Исследования по внедрению алгоритмов машинного обучения и рекомендации по общим вопросам анализа данных с помощью Python представлены в работе Уэса МакКинни - «Python for Data Analysis» (Wes McKinney, 2014). В отличие от предыдущих работ, это исследование полностью фокусируется на практике и не имеет никакой теоретической информации по вопросам внутренней организации алгоритмов машинного обучения. Автор рассматривает такие темы, как способы загрузки, агрегации и визуализации данных с помощью стека NumPy, Pandas и Scikit-learn в программной среде Anaconda Jupyter.

И последнее, но не менее важное: работа, аналогичная исследованию, проводимому в данной работе - «Flight Delay Prediction» (Vincent Martinez, 2012), написанная Vincent Martinez, описывает модель прогнозирования задержки полета, основанную только на исторических данных о полетах между аэропортами в Соединенных Штатах Америки за период с 1995 года до 2008. Данные, используемые в исследовании, содержат такие описывающие переменные, как номер рейса, дата, код перевозчика, информация о вылете и прибытии, продолжительность полета и причина задержки. Кроме того, важно отметить, что набор данных исследований не содержит никаких данных об отмененных полетах и погоде. Основываясь на этих данных, автор создал большое количество моделей классификации для прогнозирования задержки полета и сделал полноценное сравнение полученных моделей. Целью исследования проведенного Vincent Martinez, является не прогнозирование фактического состояния полета, а прогнозирование точного времени задержки и продолжительности полета. По результатам исследования автору удалось достичь до 70 процентов точности с помощью модели на основе алгоритмов условной плотности. Это исследование позволяет способствовать улучшению результатов подобных работ путем объединения большего количества статистических данных.

1.2 Анализ существующих предиктивных решений в авиационной индустрии

Несмотря на высокую актуальность и наличие реальной необходимости в предсказании статуса рейса, рынок на данный момент не представляет комплексных решений для решения данной задачи. В большей мере все исследования носят исключительно академический характер и нацелены исключительно на построение статистической модели, основанной на исторических данных за последние десятилетия. Так, Даниэл Фабиен в своей работе Predicting the flight delays (Fabien Daniel, 2017) рассматривает вопрос создания регрессионной модели для предсказания точного времени задержки рейса на базе исторических данных по США за 2015 год. Также существует ряд аналогичных работ, отличающихся исключительно используемыми методами обработки данных, решающих аналогичную проблему. Основными особенностями данных работ является ориентация на предсказание точного времени задержки рейса, а также крайне низкое качество предсказания длительных задержек.

Говоря о коммерческих реализациях возможности предсказания задержек рейсов, то наиболее активно на данном рынке представлена компания Google, с недавнего времени предоставляющая информацию клиентам из США о возможной задержке рейса в своем мета-поисковике авиабилетов. Однако, и эта реализация не может быть рассмотрена как полноценный B2B Business to Business (B2B) - модель ведения бизнеса, подразумевающая взаимодействие между компаниями в процессе производства и продажи услуг сервис, так как данные предоставляются исключительно на страницах поисковой выдачи собственного поисковика авиабилетов, и не могут быть использованы сторонними разработчиками и компаниями для интеграции в свои сервисы.

Также стоит отметить, что существует ряд ИТ-сервисов (FlightRadar24, FlightStats, FlightAware), предоставляющих информацию о текущем состоянии рейсов и данные о задержках конкретных бортов самолетов за несколько часов до вылета, что дает возможность косвенно предсказывать статус рейса, однако, и они не предоставляют ни на своих страницах, ни в качестве сервиса для своих клиентов, услуг по предварительному предсказанию статуса рейса, а также каких либо предиктивных сервисов для оценки вероятности возникновения задержек. На текущий момент доступна лишь информация о текущем статусе рейса, обновляющаяся за несколько часов до вылета рейса.

Таким образом, создаваемый в данной работе сервис будет значительно отличаться от существующих реализаций как по модели предоставления доступа, так и по методам предсказания статусов рейсов.

1.3 Методы и алгоритмы машинного обучения для анализа данных

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

Среди основных методов и групп машинного обучения выделяют такие:

· методы предварительной обработки данных;

· методы классификации;

· методы оценки построенной модели.

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

Среди наиболее часто используемых выделяют:

· замена специальным значением;

· замена средним, или наиболее частым значением;

· замена с помощью метода ближайшего соседа или любого другого метода машинного обучения.

Рассмотрим подробнее каждый из них. Алгоритм замены специальным значением производит замену всех пропусков в выборке заданным значением (чаще всего 0, или -1), позволяя тем самым не исключать данные объекты из выборки. Основной проблемой данного подхода является присвоение большому количеству объектов несвойственных им значений, что может привести к дальнейшему снижению общего качества работы методов машинного обучения.

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

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

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

· группировка категориальных признаков в большие мета-группы, а затем кодирование с использованием одного из алгоритмов обработки категориальных признаков;

· кодирование признаков с присвоением порядкового номера в качестве идентификатора класса категории;

· Dummy-кодирование.

Алгоритм группировки признаков призван не столько решить проблему наличия категориального признака, сколько упростить дальнейшее их кодирование. Как следует из названия, данный алгоритм с использованием методов машинного обучения, в частности методов, схожих с методом ближайших соседей, группирует классы групп категорий в более обобщенные мета-группы. Основным преимуществом данного подхода является уменьшение общего количества групп. Однако, как уже было сказано, данный алгоритм не может быть использован без дальнейшего кодирования полученных мета групп.

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

Наиболее оптимальным подходом предобработки категориальных признаков при сравнительно небольшом количестве классов является Dummy-кодирование, где признак принимающий q значений заменяется на q бинарных признаков Фонарев А. (2014) Машинное обучение с категориальными признаками // Московский Государственный университет М. В. Ломоносова.:

, (1)

где I[A] - идентификатор события, т.е.

,

Завершив рассмотрение методов и подходов для осуществления предобработки данных, рассмотрим основные модели классификации, которые были использованы в работе.

Наиболее часто используемыми методами классификации для несбалансированных данных являются:

· линейные классификаторы;

· решающие деревья;

· методы K-Nearest Neighbor Classifiers (kNN).

Первый тип методов, используемых в исследовании, - линейные классификаторы. Эта группа алгоритмов содержит такие популярные классификаторы, как Naive Bayes Classifier и Logistic Regression. Эти методы основаны на создании линейной разделительной поверхности для классификации классов (рис. 1). Хотя эти методы являются самыми простыми, они позволяют построить базовую рабочую модель для оценки начального результата и значимости функции на основе его коэффициентов в модели.

Рисунок Графическое представление работы линейных методов классификации отступ

В общем случае, алгоритм работы линейных методов классификации можно описать следующим образом: пусть объекты для классификации n числовыми признаками, , а Y - конечное число меток классов, тогда линейный классификатор может быть определен выражением:

,

где каждому классу соответствует вектор весов .

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

,

где: w - искомый вектор весов классификатора;

- функция потерь, штрафующая классификатор за несоответствие предсказанных результатов классификатора;

- функция регуляризации, не позволяющая параметрам классификатора выходить за установленные границы;

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

Возможные реализации линейных классификаторов отличаются выбором функции потерь, а также методами регуляризации, используемыми при обучении модели. Среди возможных реализаций линейных классификаторов можно выделить: SVM (Support vector machine, Метод опорных векторов), логистическая регрессия и другие.

Рисунок Пример решающего дерева номер рисунка неверный

Второй класс методов - это решающие деревья и случайные леса. Алгоритмы этой группы основаны на создании дерева решений, где каждая ветвь с простым условием, основанном на одной из переменных, разбивает данные на все меньшие и меньшие подмножества. В случае решающего дерева алгоритм стремится создать классификатор на базе одного решающего дерева, тогда как алгоритмы Random Forest (случайные леса) пытаются создать огромное количество меньших подклассификаторов, где общее решение по лесу представляет собой наиболее общий выбор небольших деревьев (рис. 2). Эти методы также представляют интерес по причине качества их предсказаний и возможности визуализации всего дерево для дальнейшего анализа. Общий алгоритм обучения бинарного решающего дерева может быть представлен следующим образом:

Начиная с общей обучающей выборки X, алгоритм производит поиск наилучшего разбиение выборки на две части: и с условием заданного функционала качества . Найдя наилучшие значения j и t, алгоритм создает корневую вершину дерева, задав найденный ранее предикат. Затем, на каждой из полученных выборок, данная процедура рекурсивно повторяется до достижения заданного условия остановки. Место остановки обозначается листом дерева. Завершив построение всего дерева (всех листьев), на выходе алгоритм получает дерево, где каждому листу построенного дерева будет поставлен в соответствие предсказанный класс, позволяющий пройдя дерево от вершины, на базе значений объекта, дойти до конечного листа дерева, найдя при этом искомый класс объекта

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

Еще один класс методов - это группа методов K-Nearest Neighbor Classifiers (kNN). Эта группа методов основывается на классификации объектов путем анализа классифицированных соседей на базе некоторых характеристик объекта. Алгоритм классифицирует объект по максимальному количеству соседей из окружающих его соседей (рис. 3). Модели этой группы представляют интерес из-за высокого уровня точности при наличии большой обучающей выборки.

Рисунок Пример работы метода KNN

Таким образом, в общем виде метод kNN может быть представлен следующим образом:

,

где - заданная весовая функция, оценивающая важность i-соседа для классификации объекта u.

В работе был рассмотрен так же еще один класс классификаторов - классификаторы, основанные на методах бустинга. Обобщенно, метод построения данных моделей сводится к построению последовательной композиции простых алгоритмов машинного обучения, где каждый последующий алгоритм обучается таким образом, чтобы компенсировать ошибки предыдущих алгоритмов. В работе использованы две бустинговые модели: Gradient Boosting Classifier и Ada Boost Classifier, различающиеся методами уменьшения ошибки предсказания.

Наконец, в завершение рассмотрения базовых теоретических вопросов работы, следует обратить внимание на методы оценки построенных моделей. В данной работе качество предсказаний моделей оценивалось с помощью F-меры. Рассмотрим подробнее данную метрику.

Общая формула F-меры представляет гармоническое среднее между точностью (Precision) и полнотой (Recall) предсказания:

,

где точность (Precision) представляет из себя отношение верно классифицированных объектов (True positive, TP) к общей сумме верно классифицированных объектов и ошибочно классифицированных объектов другого класса (False positive, FP). То есть,

.

Полнота (Recall) отражает долю объектов класса, которые правильно классифицировала модель и представляет из себя отношение верно классифицированных объектов к общей сумме верно классифицированных и неверно классифицированных объектов (False negative, FN), отнесенных к другому классу. То есть,

.

1.4 Обзор библиотек и фреймворков использованных в работе

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

Рассмотрение инструментария стоит начать с разбора основных фреймворков и библиотек для предобработки и создания моделей машинного обучения.

Первым по важности среди них можно выделить пакет Jupyter Notebook. Возможности данного фреймворка позволяют взаимодействовать со средой Python через интерактивный веб-интерфейс путем ввода команд на языке Python в поля веб-ноутбука (рис. 4). Данный пакет позволяет в простой и быстрой форме создавать сложные прототипы в удобном для просмотра и использования виде. Основным преимуществом данного решения является высокая скорость его работы, а также возможность быстрого и интерактивного взаимодействия с написанным кодом.

Пакет Jupyter Notebook используется в совокупности с большим количеством библиотек и дополнений. Одним из самых важных из них является пакет Pandas. Данная библиотека позволяет взаимодействовать с большими объемами данных в удобной и простой форме динамических таблиц. Библиотека используется для загрузки и агрегации больших объемов данных. Так, Pandas поддерживает работу как со встроенными типами Python, так и загрузку данных с диска в таких форматах, как TXT, TSV, CSV и Microsoft Excel. Также пакет предоставляет базовые возможности по предобработке и визуализации данных.

Рисунок Окно взаимодействия с интерактивным редактором Jupyter Notebook

Следующим пакетом, без которого невозможно какое-либо исследование в данной среде является пакет NumPy. Данная библиотека существенно расширяет возможности языка Python, реализуя большое количество алгоритмов, используемых при работе с большими объемами данных. Основным преимуществом перед библиотекой Pandas является широкий набор функционала по работе с многомерными данными, без которых невозможно представить ни одну комплексную модель машинного обучения.

Также необходимо отметить пакет Scikit-learn, содержащий в себе набор ряда алгоритмов машинного обучения, используемых для создания моделей. Данный пакет содержит в себе обширный набор методов для предобработки, анализа и визуализации данных. Библиотека включает в себя такие методы классификации, как DecisionTreeClassifier, RandomForestClassifier, GradientBoostingClassifier и другие. Таким образом, библиотека представляет собой базис для создания моделей машинного обучения.

Переходя от вопроса создания моделей машинного обучения, следует рассмотреть технологии для создания веб-ресурсов.

Так как модели создаются с использованием решений на языке Python, то и веб-ресурс следует реализовывать с использованием возможностей данного языка. По этой причине для реализации веб-интерфейса был выбран легкий микро-фреймворк для построения веб-приложений - Flask. Основным его преимуществом является простота настройки, а также высокая скорость работы. Фреймворк устанавливается как пакет для Python и может быть настроен для работы всего в несколько строк. Несмотря на свою легковесность и простоту, он вполне может быть использован для создания высоконагруженных приложений.

Также построение веб-приложения невозможно без использования платформ для развертывания приложений. Наиболее интересным предложением в данном вопросе является облачная платформа Amazon AWS, предлагающая широкий спектр услуг с высоким уровнем надежности (рис. 5).

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

Рисунок Список услуг, предоставляемых облачным сервисом Amazon AWS.

Существуют и другие инструменты для анализа данных, например, VBA в Microsoft Excel, SPSS Statistic, а также язык программирования R. Использование VBA предполагает создание кода программы вручную, а программирование сложных методов анализа данных требует достаточно много времени. Кроме того, при обработке больших массивов данных Microsoft Excel не хватает производительности, и программа работает медленно. SPSS Statistic также имеет не самую высокую производительность, в пакете реализованы не все необходимые для анализа функции и возможности. Для корректной работы с данными требуется предварительная подготовка. Язык программирования R поддерживает все необходимые функции машинного обучения и анализа больших данных, и читается лидером среди других языков программирования в области статистической обработки данных. Однако язык R -узкоспециализированный, сфера его использования ограничена наукой о данных. В то время как Python является универсальным многоцелевым языком, который применяется не только для обработки данных, но также для их поиска и использования результатов обработки в веб-приложениях.

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

Глава 2. Сбор и агрегация погодных и исторических данных о регулярных рейсах авиакомпаний

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

2.1 Сбор и агрегация исторических данных о регулярных рейсах авиакомпаний

Проведя анализ рынка данных авиационной статистики, стало очевидно, что данные по большинству регионов либо не предоставляются, либо доступны исключительно на платной основе. Исходя из этого, выбор пал на анализ данных о регулярных перелетах компаний внутри США, где статистические данные бесплатно предоставляются Бюро транспортной статистики США (Bureau of Transportation Statistics). Данный банк данных предоставляет помесячную информацию о статусе регулярных рейсов внутри США с 1987 года и по настоящее время. Среди доступных данных, о каждом рейсе присутствует такая информация, как:

· Информация о дате перелета:

§ Year - год осуществления рейса;

§ Quarter - квартал осуществления рейса;

§ Month - месяц осуществления рейса;

§ DayofMonth - день месяца осуществления рейса;

§ DayOfWeek - день недели осуществления рейса.

· Информация о перевозчике:

§ Carrier - идентификатор авиакомпании согласно нотации в международной авиационной ассоциации IATA;

§ TailNum - международный регистрационный номер самолета;

§ FlightNum - номер рейса авиакомпании.

· Информация о аэропорте отправления:

§ Origin - идентификатор аэропорта согласно нотации в международной авиационной ассоциации IATA;

§ OriginCityName - полное название города, в котором размещается аэропорт.

· Информация о аэропорте назначения:

§ Dest - идентификатор аэропорта согласно нотации в международной авиационной ассоциации IATA;

§ DestCityName - полное название города, в котором размещается аэропорт.

· Информация об отмене рейса:

§ Cancelled - был ли рейс отменен;

§ CancellationCode - код отмены рейса согласно внутренней нотации BTS.

· Информация о статусе рейса:

§ CRSDepTime - локальное время отправления рейса согласно системе бронирования;

§ DepTime - реальное время отправления рейса;

§ DepDelayMinutes - время задержки рейса в минутах.

· Информация о причине задержки рейса:

§ CarrierDelay - время задержки рейса в минутах по вине перевозчика;

§ WeatherDelay - время задержки рейса в минутах по причине неблагоприятной погоды;

§ NASDelay - время задержки рейса в минутах по вине национальной авиасистемы США (NAS);

§ LateAircraftDelay - время задержки рейса в минутах по причине позднего прибытия воздушного судна.

Данная информация доступна на сайте Бюро транспортной статистики США и может быть загружена исключительно c помощью встроенного загрузчика. Таким образом, в рамках исследования была загружена информация за 2 года, содержащая информацию о перелетах регулярных авиарейсов внутри США за период с 1 декабря 2016 года по 1 декабря 2018 года. Данный выбор был обусловлен как вычислительными ограничениями, доступными при реализации данной работы, так и отсутствием необходимости сбора большего количества данных. По окончанию сбора исторических данных была собрана информация по 10 миллионам перелетов из более чем 235 аэропортов страны.

Несмотря на достаточно высокое качество исходных данных, существенное количество данных было отброшено по причине наличия большого количества пропусков, либо некорректных данных. Проведя отчистку данных от искаженных записей, было получено приблизительно 8 миллионов записей, что также является достаточным количеством для построения аналитических моделей, а существующие записи покрывали все основные аэропорты США (рис. 6).

Рисунок География полученных записей о перелетах

2.2 Сбор и агрегация погодной информации

Для повышения полноты исторических данных о регулярных перелетах компаний внутри США, был произведен сбор соответствующей погодной информации по имеющимся перелетам внутри США. Для сбора этой информации был использован еще один бесплатный государственный банк данных США - Национальный центр информации о окружающей среде (NOAA, National Centers for Environmental Information). В отличие от Бюро транспортной статистики США, данный банк предоставляет возможность автоматической выгрузки данных с использованием программного интерфейса API.

Для сбора информации был написан программный модуль на языке программирования Python (Приложение 1), позволяющий производить сбор погодных данных по выбранному городу США за указанный период времени.

Таким образом, благодаря использованию интерфейса API NOAA для доступа к погодной информации, была собрана информация по 235 городам США, содержащая ряд данных, необходимых для построения предиктивной модели.

Так, по всем городам вылета для каждого рейса была собрана следующая информация:

· AWND - средняя скорость ветра (десятые скорости в метрах в секунду);

· SNOW - количество осадков снега (в миллиметрах);

· SNWD - количество выпавшего снега (в миллиметрах);

· WT01 - наличие тумана (бинарных признак);

· WT02 - наличие сильного морозного тумана (бинарных признак);

· WT03 - наличие грозы (бинарных признак);

· WT04 - наличие снежного дождя (бинарных признак);

· WT05 - наличие града (бинарных признак);

· WT06 - наличие града (бинарных признак);

· WT06 - наличие обморози (бинарных признак);

· WT07 - наличие вулканического пепла (бинарных признак);

· WT08 - наличие задымления (бинарных признак);

· WT09 - наличие снежного урагана (бинарных признак);

· WT10 - наличие торнадо или водяного смерча (бинарных признак);

· WT11 - наличие разрушительного ветра (бинарных признак).

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

2.3 Агрегация исторических и погодных данных

Завершив сбор исторических и погодных данных, было произведено сведение информации в один общий банк данных. Для сведения данных был использован тот же модуль, что и для произведения сбора погодной информации (Приложение 1). Ввиду наличия излишнего количества данных, ряд переменных был упразднен, либо соединен в один общий признак.

Таким образом, финальный документ с историческими и погодными данными содержит следующую информацию:

· average_wind_speed - средняя скорость ветра в конкретный день;

· snowfall - количество миллиметров снега, выпавших в конкретный день;

· snow_depth - количество миллиметров снега, оставшегося лежать на земле в конкретный день;

· thunder - был ли в выбранный день сильный ветер;

· dust - ветер с пылью в конкретный день;

· day_of_week - день недели;

· carrier_delay - длительность задержки рейса в минутах по вине перевозчика;

· dep_delay_new - время задержки рейса в минутах;

· dest - код аэропорта назначения;

· dest_city_name - название города назначения;

· fl_date - полная дата осуществления перелета;

· fl_num - номер рейса авиакомпании;

· month - месяц осуществления перелета;

· origin - код аэропорта вылета;

· origin_city_name - название города аэропорта вылета;

· quarter - текущий квартал;

· tail_num - регистрационный номер самолета, выполняющего рейс;

· cancelled - был ли отменен рейс, а также причина отмены.

· snowfall - количество миллиметров снега, выпавших в конкретный день;

Рисунок Финальный набор данных загруженных с помощью модуля для сбора данных

· snow_depth damaging_wind

· thunder - был ли в выбранный день сильный ветер;

· dust - ветер с пылью в конкретный день;

· haze - легкий туман;

· snow - наличие снежного покрова;

· fog - густой туман;

· hail - наличие града;

· damaging_wind - наличие ветра разрушительной силы.

В итоге был получен финальный набор данных, содержащий более 8 миллионов записей (рис. 7).

Глава 3. Создание модели машинного обучения для предсказания вероятности отмены рейса

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

3.1 Первоначальный анализ собранных данных

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

В первую очередь было проверено наличие зависимостей между присутствующими характеристиками перелета. Для этого была построена корреляционная матрица (рис. 8).

Корреляционная матрица признаков

Исходя из полученной таблицы, было выявлено несколько зависимостей. Так, признак carrier_delay (длительность задержки рейса в минутах по вине перевозчика), представляющий еще один вариант представления времени задержки, коррелирует с dep_delay_new (время задержки рейса в минутах). Так как данные признаки являются целевыми, и будут переработаны в будущей предобработке, данная зависимость не представляет интереса. Также, был найден высокий уровень зависимости между переменными month (месяц осуществления перелета) и quarter (текущий квартал). Так как модели машинного обучения склонны переобучаться при наличии зависимых переменных, в будущей предобработке данные переменные будут дополнительно рассмотрены.

В продолжение первоначального анализа, для оценки распределения данных была построена гистограмма, содержащая в себе все переменные выборки (рис. 9).

Гистограмма распределения признаков

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

Для проверки данной теории был построен дополнительный график, описывающий среднюю длительность задержек относительно каждого из месяцев (рис. 10).

График распределения задержек по месяцам

Действительно, как можно увидеть из графика (рис. 10) - существенно более длительные задержки встречаются именно на границах года, что только подтверждает описанную выше гипотезу. Таким образом, можно сделать несколько дополнительных предположений: длительные задержки возникают либо в следствие более высокого спроса на авиауслуги в конце года в связи с праздниками, либо, влияние на создание задержек оказывает холодное время года, сказываясь тем самым на возможности осуществления рейсов.

В проводимом исследовании так же представляет интерес количество задержанных перелетов и количество отмен (рис. 11).

Распределение статусов перелетов за период в 2 года

Как можно заметить, существенная часть рейсов выполняется согласно расписанию, тем не менее, каждый восьмой рейс был задержан больше, чем на 30 минут, что представляет из себя достаточно существенный показатель. Немалую часть составляют и отмененные рейсы - 1,5% всех рейсов были отменены, что, естественно, повлекло за собой существенные перемены планов для путешественников.

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

Исходя из графика (рис. 12) очевидно, что некоторые перевозчики задерживают рейсы существенно чаще, чем остальные. Так, авиакомпания JetBlue (B6) существенно чаще задерживает собственные рейсы, чем, к примеру, American Airlines (AA). Таким образом целесообразным является создание индекса задержек для каждой из авиакомпаний, отражающий средний процент задержанных рейсов от общего числа осуществляемых рейсов (рис. 13). Данный индекс позволит не только более качественно оценить каждую из авиакомпаний с точки зрения оценки общего количества задержанных рейсов, но и позволит использовать данные индексы для улучшения качества работы предиктивных моделей, повышая тем самым общее качество предсказания.

Количество задержек у каждой из авиакомпаний в соотношении с общим количеством осуществленных рейсов

Процент задержанных рейсов у каждой из авиакомпаний

3.2 Предобработка данных

Завершив первоначальный анализ данных, можно приступить к приведению данных к виду, подходящему для обучения моделей классификаторов (Приложение 2).

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

Также стоит отметить обработку категориальных переменных. В используемом наборе данных, присутствует переменная - dest отражающая IATA код аэропорта назначения рейса. Так как модели машинного обучения не способны взаимодействовать с категориальными признаками, данный признак был преобразован с помощью алгоритма OneHotEncoding , преобразующего категориальную переменную в набор категориальных переменных, где каждая из переменных отражает бинарный признак принадлежности объекта к одному из категориальных классов. Так, для города Алабама, с переменной dest принимающей значения: ATL, BTV, BWI, CLT, …, TPA, результат работы алгоритма OneHotEncoding представлен на рис. 14.

Результат работы метода OneHotEncoding для обработки категориальных признаков на примере города Алабама.

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

* cancellation_code - код отмены рейса согласно внутренней нотации BTS;

* cancelled - был ли отменен рейс, а также причина отмены;

* carrier_delay - время задержки рейса в минутах по вине перевозчика;

* dep_delay_new - время задержки рейса в минутах;

* late_aircraft_delay - время задержки рейса в минутах по причине позднего прибытия воздушного судна;

* nas_delay - время задержки рейса в минутах по вине национальной авиасистемы США;

* security_delay - время задержки рейса в минутах по причине задержек в работе службы безопасности аэропорта;

* weather_delay - время задержки рейса в минутах по причине неблагоприятной погоды;

* diverted - был ли рейс переведен в другой аэропорт;

* origin_city_name - название города аэропорта вылета;

* dest_city_name - название города назначения.

Из удаленных объясняющих переменных была создана единая категориальная переменная status, имеющая три состояния:

* no_delay - нет задержки, либо задержка до 30 минут;

* delay - задержка рейса более, чем на 30 минут;

* cancelled - рейс отменен.

Также были удалены переменные, которые после проведения дополнительного анализа, были помечены, как не влияющие на итоговое качество предсказания. К ним относятся погодные данные:

...

Подобные документы

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

    дипломная работа [625,2 K], добавлен 10.06.2017

  • Популярность алгоритмов машинного обучения для компьютерных игр. Основные техники обучения с подкреплением в динамической среде (компьютерная игра "Snake") с экспериментальным сравнением алгоритмов. Обучение с подкреплением как тип обучения без учителя.

    курсовая работа [1020,6 K], добавлен 30.11.2016

  • Создание системы предобработки данных; разработка системы классификации на базе методов и алгоритмов машинного обучения, их реализация в программной системе. Предобработка информации, инструкция пользователя, система классификации, машинный эксперимент.

    дипломная работа [917,1 K], добавлен 31.01.2015

  • Описание создаваемого сервиса. Разработка и реализация серверной части сервиса и клиентской части сервиса, которая будет предоставлять пользователям возможность создания и редактирования генеалогических деревьев, возможность импорта и экспорта данных.

    курсовая работа [116,9 K], добавлен 20.07.2012

  • Разработка модели и создание структуры реляционной базы данных. Организация данных в таблицах для предоставления оперативного доступа к данным. Основные структурные единицы базы данных Access: таблицы, запросы, формы, отчеты, страницы, макросы и модули.

    реферат [4,0 M], добавлен 03.02.2013

  • Анализ проблем, возникающих при применении методов и алгоритмов кластеризации. Основные алгоритмы разбиения на кластеры. Программа RapidMiner как среда для машинного обучения и анализа данных. Оценка качества кластеризации с помощью методов Data Mining.

    курсовая работа [3,9 M], добавлен 22.10.2012

  • Проведение исследования опыта взаимодействия в сети. Методы улучшения согласования с пользователем web-сервиса. Особенность проектирования онлайн-приложения. Изучение разработки контроллеров и моделей. Характеристика создания интерфейса программы.

    дипломная работа [1,3 M], добавлен 11.08.2017

  • Анализ информационных потоков, связанных с деятельностью шиномонтажной мастерской. Разработка информационной модели данных. Описание технического задания на разработку web-сервиса. Составление планов управления конфигурациями и контроля качества.

    курсовая работа [3,7 M], добавлен 25.12.2014

  • Искусственные нейронные сети как одна из широко известных и используемых моделей машинного обучения. Знакомство с особенностями разработки системы распознавания изображений на основе аппарата искусственных нейронных сетей. Анализ типов машинного обучения.

    дипломная работа [1,8 M], добавлен 08.02.2017

  • Представление данных в памяти компьютера. Обобщенные структуры и модели данных. Методы доступа к информации. Физическая организация системы управления базами данных, структура сервера. Архитектура "клиент-сервер". Создание базы данных с помощью "Денвер".

    курсовая работа [770,3 K], добавлен 17.11.2014

  • Организация проверки результатов обучения и оценки знаний, использование систем тестирования, основные требования к ним. Создание современной модели WEB-сервиса тестирования знаний; программная реализация; защита от копирования информации и списывания.

    курсовая работа [24,1 K], добавлен 11.05.2012

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

    курсовая работа [3,3 M], добавлен 23.12.2014

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

    дипломная работа [428,9 K], добавлен 07.09.2017

  • Історія машинного перекладу як науково-прикладного напряму. Теорія машинного перекладу. Особливості використання систем, орієнтованих на персональні комп’ютери. Напрямки розвитку та застосування машинного перекладу. Приклади систем машинного перекладу.

    реферат [21,5 K], добавлен 19.02.2011

  • Роль и возможности адаптивной модели в организации образовательного процесса. Структура и механизм навигации в адаптивной модели обучения АЯП Prolog. Программная реализация адаптивной модели обучения. Демонстрация созданного программного продукта.

    курсовая работа [1,6 M], добавлен 19.06.2015

  • Проектирование Web-сервиса учебного процесса кафедры физкультуры. Анализ существующих решений и построение моделей предметной области. Разработка базы данных Web-сервиса для обеспечения функциональности работы. Архитектура, интерфейс, взаимодействие с БД.

    дипломная работа [1,9 M], добавлен 05.04.2017

  • ERwin как средство разработки структуры базы данных. Внешний вид диалогового окна Entity Edition. Общий вид модели после создания сущностей. Вид логической модели после создания связей. Диалоговое окно New Key Group, окончательный вид логической модели.

    лабораторная работа [559,0 K], добавлен 16.07.2013

  • Характеристика работы сервиса технического обслуживания автомобилей и основные составляющие процесса. Структурная схема модели, временная диаграмма, Q-схема системы и их описание. Сравнение результатов моделирования и машинная программа работы сервиса.

    дипломная работа [140,2 K], добавлен 18.06.2011

  • Моделирование системы массового обслуживания. Анализ зависимости влияния экзогенных переменных модели однофазной одноканальной СМО на эндогенные переменные. План машинного эксперимента множественного регрессионного анализа и метода наименьших квадратов.

    лабораторная работа [107,5 K], добавлен 15.06.2010

  • Учет книжного фонда библиотеки. Разработка концептуальной модели данных. Составление спецификации атрибутов и связей, генерация в системе PowerDesigner физической модели по концептуальной модели. Создание скрипта создания базы данных для СУБД FireBird.

    контрольная работа [784,2 K], добавлен 10.04.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.