|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Про нейросети сегодня говорят очень много, как правило, общими фразами и часто слишком восторженно. Тем не менее, многие технические аналитики на практике рисуют графики, читают прессу и довольствуются естественной нейросетью в своей голове для сведения всех input в один output купить или продать. Кроме того, они, как правило, не являются специалистами по нейросетевым технологиям, а в научных статьях не обюясняется, как, например, взять конкретный пакет и сделать своими руками что-нибудь простое и полезное. Давайте рассмотрим пример создания нейросети для финансового прогнозирования, разобрав попутно последовательность и технику использования средств пакета BrainMaker 3.1 . Шаг за шагом Первый шаг при разработке нейросети определить, что же она должна делать. Этот вопрос важнее, чем кажется на первый взгляд. Предположим, наша нейросеть предсказывает наступление какого-либо события с погрешностью 20%. Сегодня акции стоят 95 долл., а завтра будут стоить 100. Что может быть спрогнозировано с большей точностью абсолютная цена акций, изменение цены или направление движения рынка? В первом случае прогноз будет в пределах 80-120 долл. При прогнозе изменения цены результат будет находиться в интервале 4-6 долл., что соответствует абсолютной цене 99-101 долл.. Ну, а предугадать направление движения рынка вообще можно безошибочно. Таким образом, результат зависит уже от того, как сформулирована цель разработки нейросети. В нашем примере нейросеть разворачивается с целью прогнозирования изменения цен на акции некоторой компании Bart-Davis-100 (BD100). Для наглядности применения аналитических средств будем использовать специально подобранные данные. Файлы и инструкции, необходимые для воспроизведения примера на своем компьютере, можно взять на сервере . Для практического использования, естественно, нужно строить нейросеть на реальных, а не на абстрактных данных. Затем необходимо определить состав исходных данных (второй шаг) и собрать их (третий шаг). Исходный файл представляет собой текстовую таблицу (185 строк), в которой находятся упорядоченные по строкам и столбцам технические индикаторы, индексы и цены (Таблица 1).
Каждой строке соответствуют данные одного дня. В столбцах, обозначенных 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. В левой части показано прошедшее, а в правой будущее время. 17.04.1998г Также в разделе:
|
Эта рубрика в архиве
Список номеров за
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||