White Papers

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

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

Открытые системы

BrainMaker - прогнозирование на финансовых рынкахВерсия для печати

Сергей Блинов, blis@aha.ru


Шаг за шагом

NetMaker. Предварительный анализ и подготовка данных.

BrainMaker. Обучение и тестирование нейросети, получение результатов


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

BrainMaker популярный нейросетевой пакет, разработанный компанией California Scietific Software. Пакет состоит из нескольких модулей, среди которых основными являются сам BrainMaker, а также модуль предварительной подготовки и анализа данных NetMaker

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

Давайте рассмотрим пример создания нейросети для финансового прогнозирования, разобрав попутно последовательность и технику использования средств пакета BrainMaker 3.1 .

Шаг за шагом

Первый шаг при разработке нейросети определить, что же она должна делать. Этот вопрос важнее, чем кажется на первый взгляд. Предположим, наша нейросеть предсказывает наступление какого-либо события с погрешностью 20%. Сегодня акции стоят 95 долл., а завтра будут стоить 100. Что может быть спрогнозировано с большей точностью абсолютная цена акций, изменение цены или направление движения рынка? В первом случае прогноз будет в пределах 80-120 долл. При прогнозе изменения цены результат будет находиться в интервале 4-6 долл., что соответствует абсолютной цене 99-101 долл.. Ну, а предугадать направление движения рынка вообще можно безошибочно. Таким образом, результат зависит уже от того, как сформулирована цель разработки нейросети.

В нашем примере нейросеть разворачивается с целью прогнозирования изменения цен на акции некоторой компании Bart-Davis-100 (BD100). Для наглядности применения аналитических средств будем использовать специально подобранные данные. Файлы и инструкции, необходимые для воспроизведения примера на своем компьютере, можно взять на сервере . Для практического использования, естественно, нужно строить нейросеть на реальных, а не на абстрактных данных.

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

Таблица 1.
dayBD100price1price2index1Dindex2DlinestrengutilDtranspD
1287738.7746.7714.68-5.4114.3797.6226.223.23
2278939.0746.8820.69-3.55126.1991.9226.842.6
3262239.4747.1123.660.15140.3499.7628.642.92

Каждой строке соответствуют данные одного дня. В столбцах, обозначенных day, BD100, price1, price2, index1D, index2D, line, streng, utilD, transpD, содержатся данные одного типа.

Первый столбец (day) порядковый номер дня, выполняет чисто информативные функции.

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

Остальные величины в данный момент не имеют значения. На практике это могут быть цены на сырьевые товары (нефть, золото) на мировом рынке, значения фондовых индексов, отражающих движение цен на биржах (Dow-Jones, Nikkei и др.), индикаторы технического анализа и т.д.

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

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

NetMaker. Предварительный анализ и подготовка данных.

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



Рис. 1.

Чтобы прогноз был более точным, имеет смысл использовать не абсолютные значения BD100, а только их изменения по сравнению с предыдущим днем. То же относится и к величинам price1, price2. Итак, добавим три новых столбца BD100D, price1D, price2D с приращениями абсолютных значений. Поскольку данные в столбцах с изменениями цен получаются в результате вычитания значений предыдущего дня из значений текущего, первая строка будет содержать некорректные значения. Поэтому в дальнейшем мы ее удалим. Значения в столбцах index1D, index2D, utilD, transpD уже записаны в виде приращений.

Для анализа взаимосвязей между входными данными и значениями BD100, которые мы собираемся прогнозировать, можно использовать Data Correlator. Рассмотрим взаимосвязь между BD100 и index1D, построив, с помощью Data Correlator, следующий график (рис.2).



Рис. 2.

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


1 2 3 4

17.04.1998г


Также в разделе:

Новости ОСП-ТВ - 15.03.10


17/04/1998 №04

НОВОСТИ

Пятая версия 64-разрядной ОС IRIX Триумф консалтинга в России Alpha 21264 живее всех живых Unicenter TNG в МДМ-Банке ... а Tivoli на международном рынке VISA по Internet SCO на подъеме Мода



Эта рубрика в архиве
Список номеров за

OSP.RU :: Написать письмо.