
- •Дипломная работа Интеллектуальный анализ влияния текущих событий на протекание связанных с ними процессов
- •Реферат
- •1. Введение
- •1.1 Постановка задачи
- •2. Методы машинного обучения и алгоритмы машинного обучения
- •2.1 Задача классификации
- •2.2 Multiclass классификация
- •2.2.1 Стратегия One-vs.-rest
- •2.3 Multi-label классификация
- •2.4 Выводы
- •3. Методы и алгоритмы, реализованные в программной системе
- •3.2 Наивный Байесовский Классификатор
- •3.3.1 Стохастический Градиентный Спуск
- •3.4 Выводы
- •4. Реализация системы
- •4.1 Предобработка информации
- •4.1.1 Инструкция пользователя
- •4.2 Система классификации
- •4.2.1 Рабочий режим
- •4.2.2 Тестовый режим
- •4.2.3 Инструкция пользователя
- •4.2.3.1 Тестовый режим
- •4.2.3.2 Рабочий режим
- •4.3 Выводы
- •5. Машинный эксперимент
- •5.1 Выводы
- •6. Заключение
- •Список использованных ресурсов
- •Приложение 1. Система предобработки информации.
- •Приложение 2. Файл конфигурации системы предобработки информации
- •Приложение 3. Хранимые процедуры и табличные представления базы данных FactEventAnalysisDb
- •Приложение 4. Система классификации
Министерство образования и науки Российской Федерации
Санкт-Петербургский государственный политехнический университет
Институт информационных технологий и управления
Кафедра “Системный анализ и управление”
Работа допущена к защите
Зав. каф СAиУ В. Н. Козлов
“____” ___________ 2015 г.
Дипломная работа Интеллектуальный анализ влияния текущих событий на протекание связанных с ними процессов
Специальность 230201 Информационные системы и технологии
Выполнил студент гр. 6082 М.К. Хайтович
Научный руководитель, к.т.н., проф. Л.А. Станкевич
Санкт-Петербург
2015 г
Реферат
Объем работы: 123 страницы, 9 иллюстраций, 4 приложения, 1 таблица
Ключевые слова: алгоритм классификации, анализ данных, data mining, машинное обучение
Дипломная работа посвящена методике разработки программного продукта для поиска причин в изменениях трендов в данных. Рассмотрено создание системы предобработки данных и разработка системы классификации на базе различных алгоритмов машинного обучения. В работе определяется область применения разработанной программы. Для разработки системы предобработки данных использован язык программирования C#, Фреймворк .Net, а также СУБД MS SQL Server 2008R2. Для разработки системы классификации использован язык программирования Python и библиотека Scikit-Learn. Для системы классификации была использована стратегия One-vs-Rest для алгоритмов классификации Машина Опорных Векторов (с различными ядрами) и Наивный Байесовский Классификатор. Разработка велась под операционной системой Windows 7. Осуществлены эксперименты по проверке точности объяснений, даваемых системой на тестовых данных.
Оглавление
Реферат 1
1. Введение 4
1.1 Постановка задачи 8
2. Методы машинного обучения и алгоритмы машинного обучения 12
2.1 Задача классификации 12
2.2 Multiclass классификация 14
2.2.1 Стратегия One-vs.-rest 14
2.3 Multi-label классификация 16
2.4 Выводы 18
3. Методы и алгоритмы, реализованные в программной системе 20
3.1 TF-IDF 20
3.2 Наивный Байесовский Классификатор 22
3.3 SVM 25
3.3.1 Стохастический Градиентный Спуск 33
3.4 Выводы 35
4. Реализация системы 37
4.1 Предобработка информации 37
4.1.1 Инструкция пользователя 46
4.2 Система классификации 48
4.2.1 Рабочий режим 49
4.2.2 Тестовый режим 52
4.2.3 Инструкция пользователя 53
4.3 Выводы 57
5. Машинный эксперимент 59
5.1 Выводы 61
6. Заключение 64
Список использованных ресурсов 66
Приложение 1. Система предобработки информации. 67
Program.cs 67
FactMiner.cs 71
Logger.cs 102
Приложение 2. Файл конфигурации системы предобработки информации 105
Приложение 3. Хранимые процедуры и табличные представления базы данных FactEventAnalysisDB 106
usp_populateCoraxFactsTable 106
usp_clearFactsTables 110
SpikeFactsHypothesis 113
PriceFactsHypothesis 115
Приложение 4. Система классификации 117
1. Введение
В современном мире особенно сложной является задача по поиску причины в изменении поведения комплексной системы. Например:
- Что послужило причиной скачка энергопотребления города?
- Почему резко выросла заболеваемость гриппом в определенной стране?
- По какой причине цена некой ценной бумаги резко упала в конкретный день?
Одной из самых сложных проблем при выявлении и разработке законов развития комплексных систем и принятия решений является формирование понимания внутренних связей и механизмов тех или иных процессов в системах. Как правило, этих связей и механизмов много, разные элементы системы могут быть связаны между собой самыми разными прямыми и обратными связями, при этом каждый элемент так или иначе связан с функциями системы и очень часто – с вредными или нежелательными эффектами. Учитывать и использовать все эти связи в работе очень сложно.
В самом деле, в любом из упомянутых выше случаев на динамику системы (уровень энергопотребления, заболеваемость, цена ценной бумаги) могут влиять сотни тысяч различных событий. Выявить какое из событий вызвало изменение в динамике чрезвычайно сложно. Согласно исследованиям психологов, нормальный человек способен удерживать в зоне своего внимания 7 ± 2 объекта. А в реальных системах объектов и связей во много раз больше. В результате при попытке все это «охватить в уме» внимание нарушается, случайным образом «прыгает» от объекта к объекту, преувеличивает одни и преуменьшает или просто пропускает другие элементы и связи и т.п. Цельную и объективную картину увидеть не удается.
Например, ниже представлен график цен некой нефтедобывающей компании по месяцам.
Рис.1. Пример слома тренда
На данном графике явно виден рост цены акций данной компании вплоть до 6.1.2008, который сменился ее стабильным спадом после этого момента времени. Опытный специалист в анализе ценных бумаг может проверить события, которые произошли 6.1.2008 и выяснить, что в этот день был опубликован отчет о перспективах китайской экономики, который был негативным. Цена акций нефтедобывающих компаний сильно зависит от экономики Китая, ибо данная страна является крупнейшим в мире потребителем нефти, и проблемы в ее экономике могут сильно снизить доходы нефтедобывающих компаний.
Однако для выполнения анализа, который позволит найти объяснение произошедшему изменению в динамике цены ценной бумаги требуются обширные знания в предметной области, хорошо разбираться в характеристиках компаний, а также быть в состоянии изучить колоссальные объемы данных – ибо в тот же день, 6.1.2008, в мире произошли миллионы событий, каждое из которых могло повлиять на динамику цены.
Очевидно, одним из способов помочь эксперту в определении причин изменения динамики системы будет решение задачи по сокращению списка событий, связанных с системой, которые эксперту нужно рассмотреть. Вместо десятков тысяч событий эксперт сможет сосредоточиться на рассмотрении лишь их небольшого подмножества и применив свою компетенцию в предметной области сможет ответить на вопрос, что же вызвало изменение в динамике системы. Именно данная задача выделения наиболее вероятных объяснений причин некоего изменения и будет решена в данной работе.
В первой главе производится постановка задачи, ее более подробное описание а также описание исходных данных.
Во второй главе приводится описание алгоритмов и методов, примененных при разработке данной системы.
В третей главе описывается реализация системы с помощью языков программирования T-SQL, C# и Python, а также библиотеки scikit-learn.
В четвертой главе приводится описание методов оценки качества работы полученной системы и делаются выводы о качестве работы системы на тестовых данных.