Построение и обучение торговых систем на основе нейронной сети (Simple set system и Extended set system). Оценка и сравнение результатов работы систем
Следующим этапом будет построение и обучение нейронной сети на расширенном множестве, т. е. на множестве, содержащем помимо биржевой информации по ценам и объемам, также данные, полученные путем сентиментного анализа — относительные частоты слов, соответствующие различным эмоциональным состояниям. Все сети имеют практически одинаковую производительность, выберем ту, у которой она выше — первая… Читать ещё >
Построение и обучение торговых систем на основе нейронной сети (Simple set system и Extended set system). Оценка и сравнение результатов работы систем (реферат, курсовая, диплом, контрольная)
Теперь переходим ко второму этапу построения торговой системы — построение и обучение нейросетей на 2-х множествах: простом (Simple set) и расширенном (Extended set). Далее, на практике сравним результаты их работы.
Simple set system.
Для построения и обучения нейронной сети был использована пробная версия программного продукта «STATISTICA Automated Neural Networks» компании StatSoft. Программа позволяет в автоматическом режиме строить, обучать, а также проводить анализ работы различных нейронных сетей на различных данных. При желании, также можно вручную настраивать требуемые параметры сети.
В нашем случае, для обучения нейронной сети использовались данные по курсу валютной пары eur/usd за май месяц в почасовой разбивке. Данные по котировкам брались из сайта finam.ru, где можно в удобном формате загрузить исторические данные по различным финансовым инструментам за выбранный период времени. Загруженные данные сохранялись в файле формата .csv, а затем копировались на лист данных программы STATISTICA для дальнейшего анализа. Всего для обучения и построения были загружены данные по ценам за 513 часов.
биржа twitter алгоритм персептрон.
Рис 8. Загруженные данные для анализа
Для анализа была построена модель Time series (regression) (нейросетевая модель на основе регрессии временного ряда), т.к. в нашем случае мы хотим, чтобы наша сеть осуществляла прогнозирование будущих цен, исходя из исторических данных за прошлый период.
В качестве входных переменных (Continuous inputs) для нейронной сети были выбраны переменные по цене открытия, закрытия, максимальной, минимальной ценам и объеме (Open, High, Low, Volume). Целевой переменной (Continuous targets) выбрана цена закрытия периода Close, она и будет далее прогнозироваться.
Рис. 10 Выбор числа временных шагов и размера выборок для прогнозирования
Далее был выбрано число 8 в качестве Number of time steps used as inputs — число временных шагов, подаваемых на вход сети. Это означает, что на вход будут подаваться данные по предыдущим 8-ми периодам (8-ми часам), по ним и строится прогноз на 1 шаг — 1 час (прогноз следующего часа).
В качестве параметров построения были выбраны соотношения для выборки Train — 70% (обучение), Test — 15% (тестирование), Validation (контрольная выборка) — 15%.
Рис. 11 Настройка параметров нейронной сети
Был использован автоматический поиск наилучшей нейронной сети с числом скрытых слоев от 3 до 10. Обучалось 20 различных сетей и сохранялись 5, которые давали наилучший результат работы. В качестве функций активаций для скрытых и выходных нейронов были выбраны для обучения все виды. Далее мы выберем наилучшую по результатам. После выбора необходимых параметров, была запущена программа обучения сетей.
Рис. 12 Процесс обучения нейронных сетей
После завершения процесса обучения, программа выдала 5 сетей с наилучшим результатом работы. Как видно из таблицы, все сети имеют приблизительно одинаково высокий уровень производительности (>0.99) близкий к 1 и достаточно маленькой ошибкой.
Рис. 14 Графическое представление результатов прогноза сетей на обучающей выборке
На представленном выше графике видно, что каждая из сетей дает прогнозы, которые близкие к реальным.
Рис. 15 Гистограмма остатков
Если также обратить внимание гистограмму остатков, то все сети имеют распределение близкое к нормальному. Поэтому для прогнозирования можем выбрать любую из сетей. Выберем ту, у которой производительность на всех трех выборках (обучающей, тестовой и контрольной) наибольшая — первая сеть — MLP-32−8-1. Это сеть с 8-ю скрытыми нейронами, имеющую логистическую функция активации для скрытого слоя и тождественную функцию для выходного.
Далее рассчитаем среднюю ошибку прогноза нашей сети на контрольной и тестовой выборках. Сначала рассчитывалась относительная ошибка каждого из прогнозов по формуле:
гдепредсказанное нейронной сетью значение, -фактическое значение. Далее бралось среднее значение всех ошибок.
Рис. 16 Результаты прогнозирования сетей на тестовой и контрольной выборках
Были получены следующие результаты:
Средняя относительная ошибка на контрольной выборке. | Средняя относительная ошибка на тестовой выборке. |
0,116 574. | 0,1 096 382. |
Итого, средняя ошибка на Simple set: 0,1 131 061, т. е. 0,1 131 061%.
Extended set system.
Следующим этапом будет построение и обучение нейронной сети на расширенном множестве, т. е. на множестве, содержащем помимо биржевой информации по ценам и объемам, также данные, полученные путем сентиментного анализа — относительные частоты слов, соответствующие различным эмоциональным состояниям.
Для этого, необходимо рассчитать с помощью построенного ранее анализатора относительные частоты слов в твиттах с разбивкой за каждый 1 час и использовать полученные данные для обучения сети. Как и ранее, для обучения сети использовали программный продукт STATISTICA.
Итого, входные данные выглядят следующим образом:
Рис. 17 Представление входных данных для обучения нейросети на расширенном множестве
Таким образом, на вход сети подаются 12-мерные вектора вида предыдущие 8 часов. Как и в прошлом случае, прогнозируется цена закрытия каждого часа — Close. Итого, для прогнозирования следующей цены закрытия часа подается 96(12*8) входов.
Воспользовавшись автоматическим обучением на уже расширенном входном множестве в STATISTICA, получили следующие результаты по сетям:
Рис. 18 Результаты обучения сетей на расширенном множестве
Все сети имеют практически одинаковую производительность, выберем ту, у которой она выше — первая в списке сеть — MLP 96−6-1. Эта сеть содержит 6 скрытых нейрона, в качестве функции активации в скрытом слое выступает Гиперболический тангенс, функция Синуса является выходной функцией.
Рассчитаем среднюю ошибку прогноза на контрольной и тестовой выборках.
Рис. 19 Расчет средней ошибки прогноза
Средняя ошибка рассчитывается аналогично, как среднее арифметическое всех относительных ошибок прогноза.
(.
гдепредсказанное нейронной сетью значение, -фактическое значение).
Итого, средняя ошибка на Extended set: 0,1 007 943, т. е. 0,1 007 943%.
По результатам, видно, что средняя ошибка нейронной сети, построенной на расширенном множестве (данные по ценам, объемам и данные по твиттам) меньше, чем на простом множестве (данные по ценам, объемам). Это говорит о том, что на расширенном множестве мы смогли построить сеть, которая более точно прогнозирует цены закрытия часа, по сравнению с сетью, использующую лишь данные о котировках. Данное исследование подтвердило гипотезу о том, что информация, полученная путем сентиментного анализа твиттов, может использоваться для повышения точности прогноза.
Следует, также отметить, что подобный подход можно использовать для построения торговых систем для прогнозирования движения цен других финансовых инструментов: индексы, другие валютные пары, металлы и т. д.
Для того, чтобы понять действительно ли на других рынках и инструментах системы такого рода будут прогнозировать более точно, необходимо попробовать построить такие системы и проверить на практике действительно ли точность прогнозов повышается.
Существует еще много вопросов, которые можно исследовать в данной области. Например, возможность оптимизации путем создания словарей более точно классифицирующих эмоциональное состояние людей.
Для исследования в работе твитты загружались в реальном времени — Twitter API дает возможность загружать до 1% всех твиттов. Причем, брались абсолютно все твитты. На мой взгляд, в дальнейшем, можно рассмотреть возможность фильтрации твиттов по ключевым словам, тематикам, георафическому расположению и т. д. и таким образом, попробовать оптимизировать системы, повысив точность прогнозов.