Официальный сайт КубГУ | Кубанский ... · web viewhadoop –...

61
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего образования «КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ» (ФГБОУ ВО «КубГУ») Кафедра прикладной математики КУРСОВАЯ РАБОТА ПРИМИНЕНИЕ ТЕХНОЛОГИЙ АНАЛИЗА «BIG DATA» ДЛЯ ВРЕМЕННЫХ РЯДОВ ФИНАНСОВЫХ ДАННЫХ Работу выполнил ______________________________________ Р.А. Хагур (подпись, дата) (инициалы, фамилия) Факультет компьютерных технологий и прикладной математики Направление 01.04.02 Прикладная математика и информатика Научный руководитель, к-т физ. – мат. наук, доц. ________________________________ О.В. Дорошенко

Upload: others

Post on 14-Mar-2021

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИФедеральное государственное бюджетное образовательное учреждение

высшего образования«КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

(ФГБОУ ВО «КубГУ»)

Кафедра прикладной математики

КУРСОВАЯ РАБОТАПРИМИНЕНИЕ ТЕХНОЛОГИЙ АНАЛИЗА «BIG DATA» ДЛЯ

ВРЕМЕННЫХ РЯДОВ ФИНАНСОВЫХ ДАННЫХ

Работу выполнил ______________________________________ Р.А. Хагур(подпись, дата) (инициалы, фамилия)

Факультет компьютерных технологий и прикладной математики

Направление 01.04.02 Прикладная математика и информатика

Научный руководитель, к-т физ. – мат. наук, доц. ________________________________ О.В. Дорошенко

(подпись, дата) (инициалы, фамилия)Нормоконтролер,к-т физ. – мат. наук, доц. ________________________________ Г.В. Калайдина

(подпись, дата) (инициалы, фамилия)

Краснодар 2018

Page 2: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

РЕФЕРАТ

Отчет 43 с., 3 ч., 14 рис., 3 табл., 12 источников, 1 прил.

BIG DATA, DATA SCIENCE, HADOOP, NOSQL, MAPREDUCE, SHUFFLE,

HADOOP DISTRIBUT FILE SYSTEM, ДИСКРИМИНАНТНЫЙ АНАЛИЗ,

ЛОГИСТИЧЕСКАЯ РЕГРЕССИЯ, ПРОГНОЗИРОВАНИЕ

Объектами исследований являются технологий анализа Big Data и

данные курса акций предприятий.

Цель работы – изучение технологий Big Data и статистических методик

для анализа одномерных временных рядов курсов ценных бумаг.

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

методы анализа Data Science для моделирования временных рядов и

реализованы методы логистической регрессии и дискриминантного анализа.

1

Page 3: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

СОДЕРЖАНИЕ

Введение ....................................................................................................................... 3

1 Технологии Big Data и сферы применения..........................................................5

2 Алгоритмы прогнозирования временных рядов финансовых данных...........17

2.1 Логистическая регрессия...............................................................................17

2.2 Линейный дискриминантный анализ...........................................................21

2.3 Квадратичный дискриминантный анализ....................................................27

3 Прогнозирование курса акций с использованием библиотеки Scikit-Learn языка программирования Python........................................................................29

Заключение.................................................................................................................36

Список использованных источников ....................................................................... 37

Приложение А Код реализации статистических методов в Python......................39

2

Page 4: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

ВВЕДЕНИЕ

В XXI веке самым ценным ресурсом стала информация, использование

которой позволяет достичь новых в1ысот во всех областях человеческой

деятельности. Информации стало настолько много, что хранить и обрабатывать

ее традиционными способами стало очень сложно, к тому же данные,

обработанные традиционно, появляются, как правило, с опозданием,

следовательно будут уже не актуальны. Кроме того, что различные организации

создают огромые объемы данных, большая часть которых представлена в

различных форматах (текстовые документы, видеофайлы, машинные коды и

т.д.), локализованных в разнообразных хранилищах, эти данные весьма часто

обновляются.

Термин «большие данные» (Big Data) существует уже почти двадцать лет,

став за это время всемирно обсуждаемым. За историю своего недолгого

существования он успел получить широкую популярность – с одной стороны

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

компаний уже внедрили Big Data в свою деятельность, что позволило

оптимизировать работу с данными.

Цель данной работы изучение технологий Big Data и статистических

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

Для достижения поставленной цели необходимо решить следующие

задачи:

– сделать обзор сфер применимости технологий «больших данных»;

– рассмотреть инструменты Data Science;

– изучить некоторые алгоритмы машинного обучения, используемые для

моделирования временных рядов;

– протестировать изученные алгоритмы на реальных данных и построить

прогнозы.

3

Page 5: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

В качестве одномерных рядов финансовых данных использовались курсы

акций ПАО «Сбербанк» и ПАО «Норникель», которые были взяты с интернет-

ресурса Финам [1].

Наиболее распространенными инструментами для работы с «большими

данными», а именно, их обработкой и анализом (Data Science) на сегодняшний

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

R и высокоуровневый язык Phyton. Поскольку существует библиотека Scikit-

Learn, в которой реализовано достаточное количество алгоритмов машинного

обучения, то в качестве среды реализации был выбран Phyton.

Курсовая работа состоит из введения, трех глав, заключения и списка

использованных источников.

В первой главе курсовой работы описывается определения Big Data и

обзор технологии обработки больших данных.

Вторая глава содержит описание статистических методов

прогнозирования Big Data логистической регрессии и дискриминантного

анализа.

Результаты логистического и дискриминантных анализов на примере

ПАО «Сбербанк» и ПАО «Норникель» представлены в третьей главе.

4

Page 6: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

1 Технологии Big Data и сферы применения

Big Data – это новые возможности, ставшие доступными, благодаря

новым технологиям или подходам к обработке больших объемов данных и

использованию вычислительных мощностей.

Хотя термин «большие данные» является относительно новым, процесс

сбора и хранения больших объемов информации для последующего анализа

имеет давнюю историю. Концепцию определения больших данных можно

сформулировать как совокупность следующих факторов [2, 3]:

Объем. Организации собирают данные из различных источников,

включая бизнес-транзакции, социальные сети и информацию от датчиков или

машинных данных. В прошлом хранить его было бы проблемой, но новые

технологии (такие как Hadoop) облегчили бремя.

Скорость. Потоки данных происходят с беспрецедентной скоростью и

должны обрабатываться своевременно. RFID-метки, датчики и

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

данных в близком к реальному времени.

Разновидность. Данные поступают во всех типах форматов – от

структурированных, числовых данных в традиционных базах данных до

неструктурированных текстовых документов, электронной почты, видео, аудио,

биржевых данных и финансовых транзакций.

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

Изменчивость. В дополнение к возрастающим скоростям и

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

периодическими пиками. Ежедневные, сезонные и вызванные событиями

пиковые нагрузки данных сложны в обработке. Тем более при работе с

неструктурированными данными.

Сложность. Сегодняшние данные поступают из нескольких источников,

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

системами. Однако необходимо соединять и коррелировать связи, иерархии и 5

Page 7: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

множественные связи данных, иначе данные могут быстро выйти из-под

контроля.

Сами по себе алгоритмы Big Data возникли при внедрении первых

высокопроизводительных серверов (мэйнфреймов), обладающих достаточными

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

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

Сам термин Big Data впервые был озвучен в 2008 году на страницах

спецвыпуска журнала Nature в статье главного редактора Клиффорда Линча.

Этот номер издания был посвящен взрывному росту глобальных объемов

данных рисунок 1 и их роли в науке.

Рисунок 1 – Прогнозируемый график роста объемов данных в мире к 2025 году

по данным компании Seagate[4]

Big Data – серия подходов, инструментов и методов обработки

структурированных и неструктурированных данных огромных объемов и

значительного многообразия. Данные технологии применяются для получения

воспринимаемых человеком результатов, эффективных в условиях

непрерывного прироста, распределения информации по многочисленным узлам

вычислительной сети [5].

6

Page 8: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

Исходя из определения Big Data, можно сформулировать основные

принципы работы с такими данными:

Горизонтальная масштабируемость. Поскольку данных может быть

сколь угодно много – любая система, которая подразумевает обработку

больших данных, должна быть расширяемой.

Отказоустойчивость. Принцип горизонтальной масштабируемости

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

машин будут выходить из стоя, поэтому методика работы с большими данными

должны учитывать возможность таких сбоев.

Локальность данных. Это один из важнейших принципов

проектирования Big Data – решений является принцип локальности данных –

по возможности обрабатываем данные на той же машине, на которой их

храним.

Традиционным методом работы с массивами информации являются

реляционные базы данных. Однако работа с реляционной базой данных на

сотни терабайт - это еще не Big Data. В таблице 1 представлены характеристики

и из отличия в традиционных БД и Big Data.

Таблица 1 – Характеристики традиционной БД и больших БД

Характеристика Традиционные БД Большие БДОбъем информации От (1Gb 109байт) до 1Tb

(1012байт)

От 1Pb 1015 байт до 1Eb

(1018 байт)Способ хранения Централизованный Децентрализованный

Структурированность

данных

Структурирована Полуструктурирована

или неструктурированаМодель хранения и

обработки данных

Вертикальная модель Горизонтальная модель

Взаимосвязь данных Сильная Слабая

7

Page 9: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

В реляционных БД информация распределена дисперсионно, т.е. имеет

место изначально заданная четкая структура, изменение которой в уже

работающей базе связано с множеством проблем. Таким образом, в силу своей

архитектуры, реляционные БД лучше всего подходят для коротких быстрых

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

перестройки структуры БД, либо, в угоду быстродействию, увеличения

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

традиционных баз данных, а именно на сложность их масштабируемости.

Таким образом, для работы со сложными гибкими запросами необходима

среда, позволяющая хранить и обрабатывать неструктурированные данные,

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

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

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

в кластер.

Термин «NoSQL» возник в июне 2009 года и был расшифрован как «Not

Only SQL» – «не только SQL». Таким термином обозначают нереляционные

БД, в которых нет внутренних связей. БД NoSQL могут использовать

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

Технология NoSQL убирает все ограничения реляционной модели

(например, трудоемкость горизонтального масштабирования, недостаток

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

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

данные специфических типов за малый промежуток времени и предлагая

различные типы доступа к ним [6].

NoSQL база данных предоставляет механизм для хранения и извлечения

данных, который моделируется средствами, отличными от табличных

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

существовали с конца 1960-х годов, но не получили прозвище "NoSQL" до

всплеска популярности в начале двадцать первого века, вызванного

потребностями компаний Web 2.0, таких как Facebook, Google и Amazon. базы 8

Page 10: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

данных NoSQL все чаще используются в больших данных и веб-приложениях

реального времени. системы NoSQL также иногда называют "Not only SQL",

чтобы подчеркнуть, что они могут поддерживать SQL-подобные языки

запросов.

Вместо этого большинство баз данных NoSQL предлагают концепцию

"окончательной согласованности", в которой изменения базы данных

распространяются на все узлы "в конечном счете" (обычно в течение

миллисекунд), поэтому запросы данных могут не возвращать обновленные

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

точными, проблема, известная как устаревшие чтения. Кроме того, некоторые

системы NoSQL могут демонстрировать потерянные записи и другие формы

потери данных. Некоторые системы NoSQL предоставляют такие понятия, как

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

распределенной обработки транзакций в нескольких базах данных,

согласованность данных является еще более сложной задачей, которая является

сложной как для NoSQL, так и для реляционных баз данных. Даже текущие

реляционные базы данных не позволяют ограничениям ссылочной целостности

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

транзакции ACID, так и стандарты x/Open XA для распределенной обработки

транзакций.

Базы данных NoSQL-это нереляционные базы данных, которые являются

масштабируемыми, оптимизированными для использования моделей данных

без единой схемы. Базы данных NoSQL широко используются, потому что они

упрощают разработку, обеспечивают отказоустойчивость и обеспечивают

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

данных, включая столбчатые, документальные, графические данные и хранить

пары "ключ-значение" в памяти.

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

различных моделей, в том числе для хранения пар "ключ-значение" в памяти

графовых моделей данных и хранения документов. Эти типы баз данных 9

Page 11: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

оптимизированы для приложений, которым требуются большие объемы

данных, низкая задержка и гибкие модели данных. Все это достигается за счет

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

баз данных.

Базы данных NoSQL отлично подходят для приложений, требующих

более высокой масштабируемости и меньшего времени отклика, чем

традиционные реляционные базы данных. Среди них много больших

приложений для передачи данных, мобильных и интернет-приложений.

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

масштабирования базы данных NoSQL обычно обеспечивают меньшее время

отклика, чем реляционные базы данных, и их легче масштабировать.

Как нереляционные базы данных (NoSQL), так и реляционные системы

управления базами данных (РСУБД) имеют свои преимущества и недостатки.

СУБД позволяют гибко запрашивать данные, но запросы являются довольно

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

NoSQL позволяют эффективно запрашивать данные ограниченным числом

способов. Все остальные методы, как правило, дороги и имеют низкую

скорость выполнения.

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

Базы данных столбцов оптимизированы для чтения и записи данных в

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

важен для производительности аналитических запросов, поскольку он

значительно снижает Общие требования к дисковому вводу-выводу и объем

данных, которые необходимо загрузить с диска.

База данных документов предназначена для хранения

полуструктурированных данных в документах, обычно JSON или XML. В

отличие от традиционных реляционных баз данных, каждый из документов

NoSQL может иметь свою собственную схему, которая обеспечивает большую

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

хранилища для необязательных значений.10

Page 12: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

Графовые базы данных хранят вершины и направленные связи,

называемые ребрами. Графовыми могут быть и базы данных SQL, и базы

данных NoSQL. Каждая вершина или ребро может обладать набором

собственных свойств.

Хранилище типа «ключ-значение» - это база данных NoSQL,

предназначенная для нагрузок с большим количеством операций чтения или

нагрузки с высокими требованиями к вычислительной мощности.

Преимущества NoSQL:

Возможность хранения больших объемов неструктурированной

информации;

NoSQL – базы лучше поддаются масштабированию. Хотя

масштабирование поддерживается и в SQL-базах, это требует гораздо больших

затрат человеческих и аппаратных ресурсов;

Горизонтальное масштабирование (несколько независимых машин

соединяются вместе, и каждая из них обрабатывает свою часть запросов)

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

Предназначенное для работы в распределенных системах NoSQL, хранилище

спроектировано таким образом, чтобы все процедуры распределения данных и

отказоустойчивости выполнялись базой данных NoSQL;

Ключевые преимущества NoSQL баз в распределенных системах

заключаются в процедурах шаринга и репликации;

Репликация — это копирование обновленных данных на другие сервера.

Это позволяет добиться большей отказоустойчивости и масштабируемости

системы;

Шаринг — это разделение информации по разным узлам сети. Каждый

узел отвечает только за определенный набор данных и обрабатывает запросы,

относящиеся только к этому набору данных. NoSQL предполагает, что шаринг

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

11

Page 13: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

Использование облачных вычислений и хранилищ. Использование для

тестирования и разработки локального оборудования, а затем перенос системы

в облако;

Быстрая разработка. NoSQL базы данных не требуют большого объема

подготовительных действий;

Собственные языки запросов современных NoSQL хранилищ гораздо

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

Недостатки NoSQL:

Приложение сильно привязывается к конкретной СУБД. Язык SQL

универсален для всех реляционных хранилищ и поэтому в случае смены СУБД

не придётся переписывать весь код;

Ограниченная емкость встроенного языка запросов. SQL имеет очень

богатую историю и множество стандартов. Это очень мощный и сложный

инструмент для операций с данными и составления отчетов. Практически все

языки запросов и методы API хранилищ NoSQL были созданы на основе тех

или иных функций SQL, но они имеют куда меньшую функциональность;

Трудности быстрого перехода с одной нереляционной базы данных на

другую;

Приходится разрабатывать собственные инструменты для работы с БД.

Различие между этими базами данных заключается главным образом в

способах хранения и структурирования данных, а также доступа к ним. Разные

типы баз данных оптимизированы для разных приложений и примеров

использования. 

MapReduce – это модель программирования и связанная с ней реализация

для обработки и создания больших наборов данных с параллельным

распределенным алгоритмом в кластерах.

MapReduce предполагает, что данные организованы в виде некоторых

записей. Обработка данных происходит в 3 стадии [7].

Обработка данных в фреймворке MapReduce производится в три шага:

12

Page 14: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

Map: каждый рабочий узел применяет функцию map к локальным данным

и записывает Выходные данные во временное хранилище. Главный узел

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

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

ключей (созданных функцией map) таким образом, чтобы все данные,

принадлежащие одному ключу, находились на одном рабочем узле.

Reduce: рабочие узлы теперь обрабатывают каждую группу выходных

данных по ключу параллельно.

Плюсы и минусы технологии MapReduce:

Все запуски функции map работают независимо и могут работать

параллельно, в том числе на разных машинах кластера.

Все запуски функции reduce работают независимо и могут работать

параллельно, в том числе на разных машинах кластера.

Shuffle внутри себя представляет параллельную сортировку, поэтому

также может работать на разных машинах кластера. Пункты 1-3 позволяют

выполнить принцип горизонтальной масштабируемости.

Функция map, как правило, применяется на той же машине, на которой

хранятся данные – это позволяет снизить передачу данных по сети (принцип

локальности данных).

MapReduce – это всегда полное сканирование данных, никаких

индексов нет. Это означает, что MapReduce плохо применим, когда ответ

требуется очень быстро. 

Hadoop – представляет собой набор утилит с открытым исходным кодом,

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

проблем, связанных с большими объемами данных и вычислений. Он

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

больших данных с использованием модели программирования MapReduce. Все

модули в Hadoop разработаны с фундаментальным предположением, что

аппаратные сбои являются общими вхождениями и должны автоматически

обрабатываться платформой [8].13

Page 15: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

Платформа Hadoop позволяет сократить время на обработку и подготовку

данных, расширяет возможности по анализу, позволяет оперировать новой

информацией и неструктурированными данными.

Главные задачи платформы Hadoop — хранение, обработка и управление

данными.

Базовая платформа Hadoop состоит из следующих модулей:

Hadoop Common - содержит библиотеки и утилиты, необходимые

другим модулям Hadoop;

Hadoop Distributed File System (HDFS) - распределенная файловая

система, которая хранит данные на обычных машинах, обеспечивая очень

высокую совокупную пропускную способность кластера;

HADOOP YARN – введенная в 2012 году Платформа, отвечающая

за управление вычислительными ресурсами в кластерах и их

использование для планирования приложений пользователей;

Hadoop MapReduce-реализация модели программирования

MapReduce для крупномасштабной обработки данных.

Решения, построенные на базе технологии Hadoop, обладают рядом

существенных преимуществ. Основные из них приведены в таблице 2.

Таблица 2 – Преимущества решения на базе Hadoop

Преимущество Краткое описаниеСнижение времени на

обработку данныхПри обработке данных на кластере можно

существенно сократить время на обработку данных

Снижение стоимости оборудования

Применение технологии Hadoop позволяет сократить затраты на оборудование, требуемое

для хранения и обработки данных, в десятки разПовышение

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

кластера влияет только на производительность системы, при этом система продолжает корректно

Продолжение таблицы 2

Преимущество Краткое описание14

Page 16: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

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

Линейная масштабируемость

Решение позволяет наращивать производительность просто за счет добавления

новых узлов кластера. При этом производительность кластера возрастает линейно

Работа с неструктурированными

данными

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

неструктурированных, благодаря чему такие данные могут быть эффективно обработаны и

использованы

Вот некоторые методы анализа, которые используются для анализа

больших данных:

Интеллектуальный анализ данных включает поиск структуры и смысла

в больших объемах неструктурированных данных;

Машинное обучение является одним из видов искусственного

интеллекта в области информатики. Это научная дисциплина, которая

занимается проектированием и разработкой алгоритмов, которые

позволяют компьютерам разрабатывать поведение на основе

эмпирических данных. Алгоритмы используются для распознавания и

прогнозирования корреляций и закономерностей в данных. Машинное

обучение распознает закономерности в данных и соответствующим

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

Другие методы анализа включают A/B тестирование, классификацию,

Кластерный Анализ (кластеризацию), естественный языковая обработка (NLP),

(социальные) нейронные сети, Оптимизация, пространственный Анализ,

Моделирование, анализ и визуализация временных рядов.

Сфера применения Big Data достаточно широка. В частности, эти

технологии активно применяются в сфере коммуникаций, СМИ и индустрии

развлечений. Организации в этой отрасли одновременно анализируют данные о

клиентах и поведенческие данные для создания подробных профилей клиентов,

которые можно использовать, для:

15

Page 17: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

Создание контента для разных целевых аудиторий;

Рекомендовать Контент по запросу;

Измерения эффективности Контента.

Примером является Чемпионат Уимблдона, который использует большие

данные для предоставления подробного анализа настроений на теннисные

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

Реализация технологий Big Data не обошла стороной и медицинскую

сферу. Примером тому является использование университетом Флориды

свободных данных из больниц общественного здравоохранения и карты Google

для создания визуальных данных, которые позволяли бы быстрее

идентифицировать и эффективнее анализировать медицинскую информацию,

для отслеживания распространения хронических заболеваний.

Анализ данных также применяется для улучшения ряда аспектов

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

использовать технологии Big Data, можно оптимизировать потоки транспорта.

Для этого берется в расчет передвижение автомобилей в режиме онлайн,

анализируются социальные медиа и метеорологические данные. Сегодня ряд

городов взял курс на использование анализа данных с целью объединения

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

целое. Это концепция «умного» города, в котором автобусы ждут

опаздывающий поезд, а светофоры способны прогнозировать загруженность на

дорогах, чтобы минимизировать пробки.

Фондовый рынок не стал исключением для применения технологий Big

Data. Комиссия по ценным бумагам (SEC) использует большие данные для

мониторинга деятельности фондового рынка. В настоящее время они

используют сетевую аналитику и обработчики естественного языка, чтобы

поймать незаконную торговую деятельность на фондовых рынках.

Розничные трейдеры, крупные банки, хедж-фонды и другие на фондовых

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

16

Page 18: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

высокочастотной торговле, аналитике поддержки принятия решений до

торговли, измерении настроений, прогнозной аналитике и т. д.

Технологии Big Data позволили разработать более сложные алгоритмы

прогнозирования и контролировать их эффективность в реальном времени.

Сбор, фильтрация, углубленный анализ с использованием сложных

статистических моделей и удобная визуализация огромного объема данных,

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

инвесторов, использующих технологии Big Data в формировании успешных

торговых стратегий.

2 Алгоритмы прогнозирования временных рядов финансовых данных

2.1 Логистическая регрессия

Логистическая регрессия — это статистическая модель, которая обычно

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

логистическая регрессия или логит регрессия оценивает параметры

логистической модели. Более формально логистическая модель - это модель, в

которой логарифмические коэффициенты вероятности события представляют

собой линейную комбинацию независимых или предикторных переменных.

Для подтверждения обоснованности использования метода бинарной

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

методами по их основным параметрам, включающим в себя не только

показатели, отражающие качество модели, но и перспективность использования

результатов анализа в дальнейшей работе таблица 3.

Таблица 3 – Сравнительный анализ метода бинарной логистической

регрессии с наиболее популярными методами17

Page 19: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

Критерий

сравнения

Множественный

дискриминантны

й анализ

Нейронные сети Бинарная

логистическая

регрессияТочность модели Высокая Самая высокая Высокая

Степень

сложности

интерпретации

результатов

Высокая Самая высокая Низкая

Степень

сложности

использования

модели

Низкая Высокая Низкая

Логистическая регрессия позволяет находить взаимосвязь между

зависимой и независимыми переменными [9]. Подобный тип регрессии

является подтипом множественной регрессии. Бинарная логистическая система

нашла свое применение в различных областях, таких как: медицина,

банковский скоринг, прогнозирование динамики курса акций и т. д. Благодаря

своей универсальности данный тип регрессии, несмотря на его

«происхождение», часто используется в наборах Data Mining алгоритмов.

При множественной линейной регрессии предполагается, что зависимая

переменная является линейной функцией независимых переменных формула

(1):

y=a0+a1 x1+a2 x2+…+an xn+ε , (1)

где a i – коэффициенты регрессии;

x i – независимые переменные;

y – уравнение регрессии;

ε – ошибка регрессии.18

Page 20: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

При использовании моделей с дискретными зависимыми

переменными есть формальная возможность применить метод наименьших

квадратов, однако результаты являются неудовлетворительными с

содержательной точки зрения. Интерпретация оценок коэффициентов

логистической регрессии, затруднена при использовании порядковых

переменных так-как при увеличении порядковой переменной на единицу,

происходит переход к следующей альтернативе, однако эквивалентность такого

перехода не всегда сохраняется, то есть переход от первой альтернативе ко

второй не всегда численно равен переходу от второй к третьей. В случае, когда

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

связи с произвольностью нумерации, результаты оценивания теряют смысл. Из

того следует, что в случае эндогенных переменных стандартная регрессионная

схема нуждается в существенной корректировке.

Например, если рассматривается исход роста или падения цен акций, то

задается переменная y со значениями 1 и 0, где 1 означает, что курс будет

расти, а 0, что снижения курса акций. Однако здесь возникает проблема

интерпретации результата: расчетное значение зависимой переменной y

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

P( y=1)=β0+β1 x1+β2 x2+…+βn xn+ε (2)

Это неизбежно приведет к модели с предсказываемыми значениями

большими 1 и меньшими 0. Но для первоначальной задачи такие значения

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

значений y.

Переформулировка задачи регрессии помогает решить данную проблему.

И звучит она так: предсказываем непрерывную переменную (3) со значениями

на отрезке [0,1] при любых значениях независимых переменных т.е.

19

Page 21: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

P ( y=1 )=F (β¿¿0+β1 x1+β2 x2+…+βn xn+ε ),¿ (3)

где, в частности, в качестве F(z) можно взять функцию распределения

некоторой случайной величины, например, функцию (4) логистического

распределения,

F ( z )= ez

1+ez ;(4)

плотность вероятности которого вычисляется по формуле:

p ( z )= 11+e−z ; (4 )

где p – вероятность того, что произойдет интересующее событие.

Зависимость, связывающая вероятность события и величину y, показана

на следующем графике рисунка 2:

-4 -3 -2 -1 0 1 2 3 40

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

P

y

Рисунок 2 – Логистическая кривая

Простота численной реализации процедуры оценивания параметров во

многом объясняет применение функции логистического распределения на

20

Page 22: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

практике. Для оценки параметров логит регрессии в большинстве случаев

применяют метод максимального правдоподобия.

Поскольку модель (3) нелинейна по параметрам β, то их интерпретация

отличается от обычной интерпретации коэффициентов линейных

регрессионных моделей. Предположим, что у функции распределения F(z) есть

плотность p(z). Дифференцируя по векторному аргументу х и опуская нижний

индекс номера наблюдения, получаем:

∂ P ( y=1)∂ x

=F ' (xβ ) β=p ( xβ ) β (5)

Таким образом, предельный эффект (маржинальный эффект) каждого

объясняющего фактора x i является переменным и зависит от значений всех

остальных факторов x=(x1 , x2, …, xT ) При использовании этой модели для

получения представления о «среднем» предельном эффекте вычисляют

производные (5) для средних по выборке значений независимых переменных х.

2.2 Линейный дискриминантный анализ

Дискриминантный анализ включает в себя методы классификации

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

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

анализа [10].

Линейный дискриминантный анализ (LDA), нормальный

дискриминантный анализ (NDA) или дискриминантный анализ функций — это

обобщение линейного дискриминанта Фишера, метода, используемого в

статистике, распознавании образов и машинном обучении, чтобы найти

линейную комбинацию объектов, которая характеризует или разделяет два, или

более класса объектов или событий. Полученная комбинация может быть

21

Page 23: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

использована в качестве линейного классификатора или, чаще всего, для

уменьшения размерности перед последующей классификацией.

Дискриминантный анализ определяет правило, в соответствии с которым

объекты подмножества предметной классификации принадлежат к одному из

имеющихся подмножеств. На основе сопоставления дискриминантной функции

группируемого объекта, вычисленной согласно дискриминантным переменным,

с некоторой константой дискриминации.

Формулировка задачи дискриминации в общем случае звучит следующим

образом. Пусть результатом наблюдения над объектом является реализация k -

мерного случайного вектора x=(x1 , x2 , …, xk)T. Требуется установить правило,

согласно которому по наблюденному значению вектора х объект относят к

одной из возможных совокупностей π i ,i=1 …l Для построения правила

дискриминации все выборочное пространство R значений вектора х

разбивается на области Ri , i=1…l так, что при попадании х в Ri объект относят к

совокупности π i.

Правило дискриминации выбирается в соответствии с определенным

принципом оптимальности на основе априорной информации о совокупностях

pi извлечения объекта из π i. При этом следует учитывать размер убытка от

неправильной дискриминации. Предопределенная информация может быть

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

признаков в каждой совокупности, так и в виде выборок из этих совокупностей.

Априорные вероятности pi могут быть либо заданы, либо нет. Очевидно, чем

полнее исходная информация, тем точнее будут и рекомендации.

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

более значимой, если начальные сведения о распределении представлены

выборками из них. В таком случае цель дискриминации формулируется

следующим способом.

Пусть x1(t ) ,…, x j

(t ) , …, xnt( t )  выборка из совокупности π i ,i=1 …l ;

22

Page 24: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

j=1…nt, причем каждый j – й объект выборки представлен k – мерным вектором

параметров x j(t )=(x j 1

(t ) ,…, x iq(t ) , …, x ik

(t ))T. Совершено дополнительное наблюдение

x=(xi , …, xk)T над объектом, принадлежащим одной из совокупностей π i.

Требуется построить правило отнесения наблюдения x к одной из этих

совокупностей.

В большинстве случаев в задачах различения переходят от вектора

признаков, характеризующих объект, к линейной функции от них,

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

совокупность выборочных точек.

В случае, когда нет информации о параметрах распределения векторов

признаков, но известно, что распределение векторов признаков в каждой

совокупности нормально. В такой ситуации естественно замена неизвестных

параметров распределения в дискриминантной функции их наилучшими

оценками. Так как можно основывать на отношении правдоподобия правила

дискриминации.

Непараметрические методы дискриминации не требуют знаний о точном

функциональном виде распределений и позволяют решать задачи

дискриминации на основе незначительной априорной информации о

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

Для оценки параметров статистических функций распределения в

параметрических методах используются эти точки. Как правило, в

параметрических методах построения функции используется нормальное

распределение.

Для построения линейной дискриминантной модели выдвигаются

предположения:

имеются разные классы объектов;

каждый класс имеет нормальную функцию плотности от k переменных

формула (11):

23

Page 25: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

x=(x1

⋮x¿);

f i(x)= (2 π )¿2|∑i

.|−1

2 −exp (−12

(x−μ (t ) )T)∑i

−1

(x−μ(t)); (11)

где μ(i) – вектор математических ожиданий переменных размерности k;

∑i

. – ковариационная матрица при n=n;

∑i

−1

. – обратная матрица.

Матрица ∑i

.– положительно определена.

В случае, когда параметры известны дискриминацию можно провести

следующим образом.

Имеются функции плотности f 1 ( x ) , f 2 (x ) ,…, f l(x ) нормально

распределенных классов. Задана точка x в пространстве k измерений.

Предполагая, что имеет наибольшую плотность, необходимо отнести точку x к i

-му классу. Существует доказательство, что если априорные вероятности для

определяемых точек каждого класса одинаковы и потери при неправильной

классификации i-й группы в качестве j-й не зависят от i и j, то решающая

процедура минимизирует ожидаемые потери при неправильной классификации.

Приведем пример оценки параметра многомерного нормального

распределения µ и ∑ .. µ и ∑ . могут быть оценены по выборочным данным: μи ^∑ . для классов. Задано l выборок (x¿¿1(t ) ,…, xn

(t ))=xi;¿¿ из некоторых классов.

Математические ожидания μ1 , μ2, …, μk могут быть оценены средними

значениями формула (12):

μq(t )= 1

ni∑j=1

¿

x jq(t) ;q=1 , k. (12)

24

Page 26: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

Несмещенные оценки элементов ковариационной матрицы Σ формула

(13):

(∑i

.)rs=1

ni−1∑j=1

¿

(x jq(i )− μs

(i))(¿ x jq( i)− μr

(i )); r , s=1 , k ¿. (13)

Используя (12), (13) можно определить оценки μ(t )и ^∑

i. по l выборкам в

каждом классе, получив оценки, точку х необходимо отнести к классу, для

которой функция f (x) максимальна.

Предположим, что все классы, среди которых должна проводиться

дискриминация, имеют нормальное распределение с одной и той же

ковариационной матрицей ∑ ..

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

функции. На основе неравенства (14) можно определить класс, к которому

должна принадлежать точка х:

f i ( x )> f j ( x ). (14)

В случая, когда их ковариационные матрицы равны ∑i

.=∑j

.=∑ ., а μi –

вектор математических ожиданий класса i, необходимо воспользоваться

формулой (11). Тогда (14) можно представить неравенством их квадратичных

форм формула (15):

−[( x−μ(i ) )T∑ .−1 (x−μ(i ) )]>−[ (x−μ( j) )T∑ .

−1 (x−μ ( j ) )]. (15)

Если имеется два вектора Z и W, то скалярное произведение можно

записать ZT W=W T Z=( Z , W ). В выражении (15) необходимо исключить xT и ∑ .−1

x

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

(16):25

Page 27: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

xT∑ .−1

μ(i )+μ ( j )T∑ .−1

x=2(xT∑ .−1

μ ( j) )=2(x ,∑ .−1

μ ( j )) ;

μ( j )T∑ .−1

μ( j )=(μ ( j ) ,∑ .−1

μ( j )). (16)

Аналогично проводятся преобразования по индексу j. Необходимо

сократить правую и левую часть неравенства (15) на 2 и, используя запись

квадратичных форм, получается (17):

( x ,∑ .−1

μ(i ) )−12 (μ( i) ,∑ .

−1μ (i) )>(x ,∑ .

−1μ ( j ) )−1

2 (μ( j ) ,∑ .−1

μ( j) ). (17)

Необходимо ввести обозначения в выражение (17):

v (i)=∑ .−1

μ (i) ; i=1 ,m ;

λ i=12 (μ ( j ) ,∑ .

−1μ( j) ); i=1, m .

Тогда выражение (17) примет вид (18):

(x , v (i ))−λ i>( x , v ( j ))−λ j. (18)

Затем проверяемая точка х относится к классу i, для которого линейная

функция (19):

hi ( x )=(x , v (i ))−λ i. (19)

Преимущество метода линейной дискриминации Фишера заключается в

линейности дискриминантной функции (19) и надежности оценок

ковариационных матриц классов.

26

Page 28: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

2.3 Квадратичный дискриминантный анализ

Квадратичный дискриминантный анализ(QDA), как и линейный

дискриминантный анализ представляет из себя классический классификатор,

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

соответственно.

Этот классификатор привлекателен, тем что у него есть решения с

замкнутой формой, которое может быть легко вычислено, по сути своей

многоклассовыми, и хорошо зарекомендовал себя на практике и не имеет

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

На рисунке 3 показаны границы решения для линейного

дискриминантного анализа и квадратичного дискриминантного анализа.

Нижняя строка демонстрирует, что линейный дискриминантный анализ может

только изучать линейные границы, а квадратичный дискриминантный анализ

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

27

Page 29: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

Рисунок 3 – Границы решения для линейного дискриминантного анализа и

квадратичного дискриминантного анализа[11]

QDA может быть получен из простой вероятностной модели, который

моделирует условное распределение данных P(X∨ y=k) по каждому

классу k. Затем предсказания можно получить, используя правило Байеса

формула (20):

P ( y=k|X )= P(X∨ y=k)P( y=k )P(X)

=P(X∨ y=k )P( y=k )∑

lP(X∨ y=l)P ( y=l); (20)

и мы выбираем класс k, который максимизирует эту условную вероятность.

Более конкретно, для линейного и квадратичного дискриминантного

анализа P(X∨ y ) моделируется, как многомерное гауссовское распределение с

плотностью формула (21):

P ( X|y=k )= 1

(2 π )n¿ Σk∨¿1/2exp (−12(X−μk )

t Σk−1(X−μk ))¿

. (21)

Чтобы использовать эту модель в качестве классификатора, нам просто

нужно оценить из данных обучения приоритет класса P( y=k ) (по доле

экземпляров класса k), средство класса μk (посредством эмпирического образца

класса) и ковариационные матрицы (либо эмпирическими образцы

ковариационных матриц классов или регуляризованной оценкой.

В случае QDA нет предположений о ковариационных матрицах Σk

гауссиана, что приводит к квадратичным поверхностям решения [12].

Если в модели QDA предполагается, что матрицы ковариации являются

диагональными, то входы считаются условно независимыми в каждом классе, а

полученный классификатор эквивалентен гауссову классификатору Наивного

Байеса.

28

Page 30: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

3 Прогнозирование курса акций с использованием библиотеки Scikit-

Learn языка программирования Python

Scikit-Learn – это известная библиотека Python, содержащая широкий

спектр самых разнообразных алгоритмов машинного обучения, имеет

различные алгоритмы классификации, регрессии и кластеризации, случайные

деревья решений, K-средние и DBSCAN, и предназначена для взаимодействия с

числовыми и научными библиотеками Python NumPy и SciPy, что позволяет

решать нестандартные и сложные проблемы. Эта библиотека предназначена

главным образом для людей, не являющиеся специалистами в области анализа

данных и машинного обучения, о чем говорят достаточно простые названия

всех структурных элементов библиотеки и удобство их использованияв общем,

а также их сочетания с элементами (объектами и методами) других

программных модулей Python.

Библиотека Numpy используется для реализации базовой структуры

данных, используемая для параметров модели. Входные данные представлены в

виде массивов Numpy, поэтому они легко интегрируются с другими

библиотеками Python. Библиотека Numpy также обеспечивает поддержку

основных арифметических и матричных операций.

Библиотека Scipy поддерживает эффективные алгоритмы линейной

алгебры, специальные функции, обработку сигналов и изображений. Scipy

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

программирования Fortran, таких как LAPACK, что является важным аспектом

для упрощения установки.

Данные курса акций на момент закрытия торгов ПАО «Сбербанк» и ПАО

«Норникель» за период с 01.01.2009 по 14.06.2018 год для прогнозирования

были взяты с сайта Финам.ru [1]. Всего в выборке участвовало 2368 29

Page 31: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

наблюдений, из которых 2268 были обучающей выборкой, а оставшиеся 100

наблюдений тестовой. Данные для анализа загружаются из csv файла рисунки 4

и 5.

30

Page 32: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

Рисунок 4 – Данные курса акций ПАО «Сбербанк»

31

Page 33: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

Рисунок 5 – Данные курса акций ПАО «Норникель»

Графики курса акций ПАО «Сбербанк» и ПАО «Норникель»

представлены на рисунках 5 и 6. Ось абсцисс – даты котировок, а ось ординат

это цены акций на момент закрытия торгов в соответствующий день.

32

Page 34: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

Рисунок 5 – График курса акций ПАО «Сбербанк»

Рисунок 6 – График курса акций ПАО «Норникель»

Добавили к набору данных 2 столбца, которые будут хранить

задержанные цены закрытия, сдвинутые на 1 день (столбец Lag1) и на 2 дня

(Lag2) рисунок 7 и 8.

33

Page 35: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

Рисунок 7 – Добавление столбцов с лагами ПАО «Сбербанк»

Рисунок 8 – Добавление столбцов с лагами ПАО «Норникель»

Результаты прогнозирования логистической регрессии для курса акций

ПАО «Сбербанк» и ПАО «Норникель» представлены на рисунках 9 и 10.

Рисунок 9 – Логистическая регрессия ПАО «Сбербанк»

Рисунок 10 – Логистическая регрессия ПАО «Норникель»

34

Page 36: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

Логистическая регрессия для акций ПАО «Сбербанк» предсказывает в 51

случаях из 100 правильную тенденцию, роста акций и в 52 случаях для ПАО

«Норникель».

Результаты прогнозирования линейного дискриминантного анализа для

курса акций ПАО «Сбербанк» и ПАО «Норникель» представлены на рисунках

11 и 12.

Рисунок 11 – Линейный дискриминантный анализ ПАО «Сбербанк»

Рисунок 12 – Линейный дискриминантный анализ ПАО «Норникель»

Логистическая регрессия для акций ПАО «Сбербанк» предсказывает в 51

случаях из 100 правильную тенденцию, роста акций и в 52 случаях для ПАО

«Норникель».

Результаты прогнозирования квадратичного дискриминантного анализа

для курса акций ПАО «Сбербанк» и ПАО «Норникель» представлены на

рисунках 13 и 14.

35

Page 37: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

Рисунок 13 – Квадратичный дискриминантный анализ ПАО «Сбербанк»

Рисунок 14 – Квадратичный дискриминантный анализ ПАО «Норникель»

Из результатов квадратичного дискриминантного анализа, можно сделать

выводы о том, что прогнозирование роста или падения цен акций на закрытие

торгов для 53 случаем из 100 мы правильно предсказали роста или падения для

акций ПАО «Сбербанк» и это лучшая модель из всех трех моделей. Ну а что же

касается прогнозов акций ПАО «Норникель», то мы в 49 случаях из 100

правильно предсказали направление роста акций, но в общем случае для ПАО

«Норникель» эта модель прогнозирования худшая из всех.

Из полученных результатов, следует, что не существует универсального

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

должен рассматриваться в отдельности, так как для разного рода акций разные

модели показали разный результаты: для ПАО «Сбербанк» это линейный или

квадратичный дискриминантный анализы, а для ПАО «Норникель» это

линейный дискриминантный анализ.36

Page 38: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

ЗАКЛЮЧЕНИЕ

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

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

регрессии, линейного и квадратичного дискриминантного анализа с помощью

библиотеки Scikit-Learn языка программирования Python.

В результате анализа результатов изученных и построенных методов

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

требующие дальнейшего изучения:

более точных методов статистического анализа временных рядов;

построение нейронных сетей для анализа и прогнозирования

временных рядов.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ37

Page 39: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

1 Финам.ru – инвестиционная компания, брокер, Фондовая биржа ММВБ

и РТС, стоимость, котировки, курс акций URL: http://finam.ru/ (дата обращения

10.06.2018)

2 Douglas, L. 3D Data Management: Controlling Data Volume, Velocity and

Variety, L. Douglas, – Gartner, 2001.

3 Christy Pettey, Gartner Says Solving 'Big Data' Challenge Involves More

Than Just Managing Volumes of Data / Christy Pettey, Laurence Goasduff, –

Gartner, 2011.

4 Data Age 2025: The Evolution of Data to Life-Critical URL:

https://www.seagate.com/www-content/our-story/trends/files/Seagate-WP-

DataAge2025-March-2017.pdf (дата обращения 10.06.2018)

5 Натан Марц, Большие данные. Принципы и практика построения

масштабируемых систем обработки данных в реальном времени / Натан Марц,

Джеймс Уоррен, – М.: Вильямс. -2016. -292 c.

6 Haihong, E., Survey on NoSQL database, Pervasive Computing and

Applications (ICPCA) / E. Haihong, Le Guan, Du Jian, – 2011 6th International

Conference on 26-28 Oct. 2011, p. 363-366

7 Ghemawat, S., MapReduce: Simplified Data Processing on Large Clusters

Proc. of the Sixth Symposium on Operating System Design and Implementation /

S. Ghemawat, J. Dean, – San Francisco, USA, 2004. Vol. 6, N 10. P. 137-150.

8 White, T., Hadoop: The definitive guide / T. White, – 3rd -O’Reilly Media,

2012. 688 p.

9 Цыплаков, А.А., Некоторые эконометрические методы. Метод

максимального правдоподобия в эконометрии / А.А. Цыплаков, – Учебное

пособие. - Новосибирск: НГУ, 1997, 129 с.

10 Дубров, А.М., Многомерные статистические методы / А.М. Дубров,

В.С. Мхитарян, Л.И. Трошин, – Москва. 2003г., 352 с.

38

Page 40: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

11 Linear and Quadratic Discriminant Analysis URL:

http://scikit-learn.org/stable/modules/lda_qda.html#id1 (дата обращения

10.06.2018)

12 Hastie, T., The Elements of Statistical Learning / T. Hastie, R. Tibshirani, J.

Friedman, – Section 4.3, 2008, p.106-119.

39

Page 41: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

ПРИЛОЖЕНИЕ А

Код реализации статистических методов в Python

import datetime

import datetime

import numpy as np

import pandas as pd

import sklearn

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

from sklearn.linear_model import LogisticRegression

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as lda

from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis as qda

def xrange(a, x):

return iter (range (a, x))

pd.set_option ('display.max_columns', 50)

pd.set_option ('display.width', 500)

symbol = "SBRCY" # Код финансового инструмента на сайте Yahoo Finance

start_date = datetime.datetime (2009, 1, 1) # Начальная дата - 1 июля 2013

end_date = datetime.datetime (2018, 6, 14) # Конечная дата - 30 апреля 2014

ts1 = pd.read_csv ('../OpenCV/nornik.csv', delimiter=',')

# ts1 = pd.read_csv('../OpenCV/sber.csv', delimiter=',')

# ts1 = DataReader(symbol, "Finam", start_date, end_date)

print (ts1.head (3)) # Вывод первых трёх строк таблицы

print (ts1.tail (2)) # Вывод последних двух строк таблицы40

Page 42: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

ts2 = pd.DataFrame (index=ts1.index)

ts2["Today"] = ts1["Close"]

# ts2["Volume"] = ts1["Volume"]

print (ts2.head (3))

count = 2

for i in xrange (0, count):

ts2["Lag%s" % str (i + 1)] = ts1["Close"].shift (i + 1)

print (ts2.head (3))

ts = pd.DataFrame (index=ts2.index)

# ts["Volume"] = ts2["Volume"]

ts["Today"] = ts2["Today"].pct_change () * 100.0

for i, x in enumerate (ts["Today"]):

if (abs (x) < 0.0001):

ts["Today"][i] = 0.0001

# print (ts.head(3))

for i in xrange (0, count):

ts["Lag%s" % str (i + 1)] = ts2["Lag%s" % str (i + 1)].pct_change () * 100.0

ts["Direction"] = np.sign (ts["Today"])

ts = ts[count + 1:] # Пропустили первые count дней, т.к. для них некоторые

данные не определены (NaN)

print (ts.head (7))

# start_test = datetime.datetime(2014,1,1)

# start_test = 2268

xin = ts.count () * 0.8

start_test = 2268

cols = []

for i in xrange (0, count):

cols.extend (["Lag%s" % str (i + 1)])

# print (cols)

x = ts[cols] # Входные данные для обучения41

Page 43: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

y = ts["Direction"] # Целевые значения

x_train = x[x.index < start_test] # Входные данные для обучения (март)

print (x_train[0:5]) # Вывели для проверки первые 5 строк обучающей выборки

x_test = x[x.index >= start_test] # Входные данные для теста (апрель)

print (x_test[0:5]) # Вывели для проверки первые 5 строк тестовой выборки

y_train = y[y.index < start_test] # Целевые значения для обучения (март)

print (y_train[0:5])

y_test = y[y.index >= start_test] # Целевые значения для теста (апрель)

print (y_test[0:5])

# scaler = preprocessing.StandardScaler().fit(x_train)

# x_train = scaler.transform(x_train)

# x_test = scaler.transform(x_test)

# print x_train[0:5] # Вывели для проверки первые 5 строк обучающей выборки

после масштабирования

d = pd.DataFrame (index=y_test.index) # Набор данных для проверки модели

d["Actual"] = y_test

x_tr = x_train.values[:]

y_tr = y_train.values[:]

print (x_tr[0:5])

print (y_tr[0:5])

xs = x_tr[:, 0][y_tr == 1]

ys = x_tr[:, 1][y_tr == 1]

plt.scatter (xs, ys, c="green")

xs = x_tr[:, 0][y_tr == -1]

ys = x_tr[:, 1][y_tr == -1]

plt.scatter (xs, ys, c="red")

plt.legend (["Up", "Down"])

plt.xlabel ('Lag1')

plt.ylabel ('Lag2')

plt.savefig ('lags_Nornik.png', transparent=False)42

Page 44: Официальный сайт КубГУ | Кубанский ... · Web viewHadoop – представляет собой набор утилит с открытым исходным

# plt.show()

model1 = LogisticRegression ()

model1.fit (x_train, y_train) # Обучение (подбор параметров модели)

d['Predict_LR'] = model1.predict (x_test) # Тест

# Считаем процент правильно предсказанных направлений изменения цены:

d["Correct_LR"] = (1.0 + d['Predict_LR'] * d["Actual"]) / 2.0

print (d.tail (10))

hit_rate1 = np.mean (d["Correct_LR"])

print ("Процент верных предсказаний LR: %.1f%%" % (hit_rate1 * 100))

model2 = lda ()

model2.fit (x_train, y_train) # Обучение (подбор параметров модели)

d['Predict_LDA'] = model2.predict (x_test) # Тест

# Считаем процент правильно предсказанных направлений изменения цены:

d["Correct_LDA"] = (1.0 + d['Predict_LDA'] * d["Actual"]) / 2.0

print (d.tail (10))

hit_rate2 = np.mean (d["Correct_LDA"])

print ("Процент верных предсказаний LDA: %.1f%%" % (hit_rate2 * 100))

model3 = qda ()

model3.fit (x_train, y_train) # Обучение (подбор параметров модели)

d['Predict_QDA'] = model3.predict (x_test) # Тест

# Считаем процент правильно предсказанных направлений изменения цены:

d["Correct_QDA"] = (1.0 + d['Predict_QDA'] * d["Actual"]) / 2.0

print (d.tail (10))

hit_rate3 = np.mean (d["Correct_QDA"])

print ("Процент верных предсказаний QDA: %.1f%%" % (hit_rate3 * 100))

43