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

Автор работы: Пользователь скрыл имя, 21 Января 2011 в 09:53, курсовая работа

Описание работы

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

Для достижения поставленной цели в работе решены следующие задачи:

1.Выполнение обзора применения нейронных сетей.
2.Изучение классификаций нейронных сетей.
3.Изучение применения нейросетей в задаче прогнозирования.
4.Построение нейронной сети для прогнозирования на основе реальных данных

Содержание работы

Введение 4
1 Понятие нейросети. Область применения. Преимущества нейросети 6
1.1 Понятие нейросети 6
1.2 Область применения нейросетей 7
1.3 Преимущества и достоинства нейронных сетей 8
2 Применение нейросетей и их классификация 11
2.1 Задачи нейросети 11
2.2 Известное применение нейросетей 11
2.3 Классификация нейросетей 13
3 Применение нейросети в задачах прогнозирования 17
3.1 Нейросети и инвестиционная деятельность 17
3.2 Применение нейронных сетей в задачах прогнозирования 18
3.3 Входные данные 19
3.4 Архитектура нейросети и параметры обучения 20
4 Применение на практике нейросетевого моделирования для определения цены на золото в будущем периоде 21
4.1 Регрессия и корреляция данных 21
4.2 Построение нейросетевой модели прогнозирования цены на золото, с использованием исторических данных 23
Заключение 28
Список использованных источников 29

Файлы: 1 файл

курсовая итог.doc

— 1.10 Мб (Скачать файл)

     3.3 Входные данные

 

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

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

     Большой проблемой при определении состава  входов является определение глубины  «погружения» - размера временного окна, данные из которого подаются на вход нейросети. Возникает вопрос, сколько баров истории подавать на вход, чтобы качественно обучить нейросеть? Эта величина определяется только из собственного опыта и должна быть адекватной прогнозируемому периоду. Например, при дневных прогнозах разумная глубина погружения находится в пределах 5-20 дней.

     Необходимо  отметить, что многие популярные нейропакеты имеют функцию определения чувствительности по входам, которая рекомендуется разработчиками пакетов как универсальный способ отсеивания «лишних» входов. Хотя эта функция и является полезной при определении состава входов, ее автоматическое использование может принести больше вреда, чем пользы. Это обусловлено тем, что проблема определения чувствительности по входам для многослойных нейронных сетей пока математически не решена, и решается различными эмпирическими способами и алгоритмами. Поэтому рекомендуется пользоваться этой функцией с осторожностью и результаты проверять другими косвенными методами, например, статистическими. [1]

     3.4 Архитектура нейросети и параметры обучения

 

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

- максимальное  число нейронов 30-40;

- максимальное  число скрытых слоев 3-4;

- объем  входных данных должен превышать  в несколько раз количество нейронов.

     Обычно  считают, что большее число нейронов обеспечивает более качественное прогнозирование, и это является типичной ошибкой. Большой размер нейросети приводит к затруднению обучения и попаданию сети в локальные, а не в глобальные минимумы функции ошибки. Также уменьшаются обобщающие свойства сети, сеть начинает просто запоминать обучающую выборку. Такая сеть будет отлично «прогнозировать» на обучающей выборке, но на новых данных прогноз будет плохим. Чтобы избежать эффекта запоминания, объем данных должен быть достаточно большим. Например, для прогнозирования российских акций на день вперед минимальный рекомендуемый размер выборки - около 200-250 дней. [5]

 

4 Применение на  практике нейросетевого  моделирования для  определения цены на золото в будущем периоде

 

      Для рассмотрения на практике нейросетевого  моделирования были взяты данные с сайта Центрального банка РФ [2] о котировках валют и стоимостях драгоценных металлов за период со 2 июля 2008 года по 16 декабря 2010 года.

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

  1. Число, на которое хотим знать изменение стоимости грамма золота;
  2. Месяц, который поможет учесть сезонность изменений цен на золото;
  3. Изменения стоимости драгоценных металлов (серебро, платина, палладий, золото) за период, предшествующий тому, на который хотим узнать изменение стоимости золота;
  4. Изменения курсов доллара и евро за период, предшествующий тому, на который хотим узнать изменение стоимости золота.
 

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

4.1 Регрессия и корреляция  данных

 

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

     С помощью программы Statistica 6.1 построим матрицу парных корреляций: 

     

     Рисунок 2 –Матрица парных корреляций

         Как видно из рисунка 2 – практически  все выбранные нами параметры статистически значимы при построении данной модели. Также можно заметить и то, что из входных данных наиболее сильно  между собой связаны изменения курсов платины и палладия, но, в свою очередь, эти два показателя имеют достаточно сильную связь с результатирующим признаком.

         Чтобы избавиться от сильной корреляции между  признаками, сделаем преобразования: сложим изменения цен на платину  и палладий, и также найдем их относительное изменение. Также  видно, что переменные «число», «месяц»  и «серебро» имеют слабую связь с изменением цены на золото, исключим эти переменные. Для проверки необходимо построить еще одну матрицу парных корреляций. Она приведена на рисунке 3.

           

         Рисунок 3 – Матрица парных корреляций

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

      1. Относительное изменение курса доллара;
      2. Относительное изменение курса евро;
      3. Изменение курсов платины и палладия, объединенные в одну переменную путем сложения.

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

 

      Для построения нейросетевой модели используем программное обеспечение Deductor Studio Academiс. При выборе любой архитектуры, необходимо помнить, что при разбиении исходного множества на подмножества, для определения тестового и обучающего множества, должны выбирать как способ разбиения «по порядку».  При построении нейросетевой модели с использованием погружения, использовалась архитектура: 2 скрытых слоя, в первом слое- 3 нейрона, во втором – 2.

     Для начала попробуем использовать минимальную рекомендуемую глубину погружения – 5 дней, затем максимальную – 20. После этого используя метод половинного деления определим оптимальную глубину погружения. Для этого на вход, помимо данных за предшествующий день, будем подавать данные об изменениях на курс золота за, соответственно, 5, 20 и т.д. предыдущих дней. На рисунке 4 представлена нейросеть с глубиной погружения 5 дней.

Рисунок 4- Нейросеть с глубиной погружения 5 дней.

      Диаграмма рассеяния представлена на рисунке 5.

 
Рисунок 5- Диаграмма рассеяния с глубиной погружения 5 дней.

     При подстановке в «Что-если» данных за последующие числа, получим, что  с такой нейросетью относительная ошибка составит примерно 0,004358, что, конечно же, является неплохим результатом, т.к. стоимость золота будет составлять примерно 1300 рублей за грамм, т.е. погрешность составит около 5,66 рублей.

     Также на рисунке 4 видно, что у данной модели веса, направленные на оба нейрона – разные, что также хорошо.

 Построим нейросеть, используя максимальную глубину погружения -  20 дней. Она представлена на рисунке 6.

Рисунок 6 – Нейросеть с глубиной погружения 20 дней.

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

       Рисунок 7– Диаграмма рассеяния  с глубиной погружения 20 дней.

     При подстановке в «Что-если» данных за последующие числа, получим, что с такой нейросетью относительная ошибка составит примерно 0,005948, что, конечно же, является неплохим результатом, т.к. стоимость золота будет составлять примерно 1300 рублей за грамм, т.е. погрешность составит около 7,73 рублей.

     Также на рисунке 6 видно, что у данной модели веса, направленные на оба нейрона  – разные, что также хорошо.

     Построим  нейросеть, используя максимальную глубину погружения -  25 дней. Она  представлена на рисунке 8.

 

Рисунок 8 - Нейросеть с глубиной погружения 25 дней.

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

 

     Рисунок 9– Диаграмма рассеяния с глубиной погружения 25 дней.

     При подстановке в «Что-если» данных за последующие числа, получим, что  с такой нейросетью относительная ошибка составит примерно 0,005863, что, конечно же, является неплохим результатом, т.к. стоимость золота будет составлять примерно 1300 рублей за грамм, т.е. погрешность составит около 7,62 рублей.

     Также на рисунке 8 видно, что у данной модели веса, направленные на оба нейрона – разные, что также хорошо.

     Исходя  из полученных результатов, можно сделать  вывод, что наилучшие результаты получаются при использовании глубины  погружения равной 5 дням. В этом случае мы можем наблюдать наименьшую относительную ошибку, равную 0,004358, что будет соответствовать, в данном случае, примерно 5,66 рублей.

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

 
 

 

Заключение

 

     В данной курсовой работе было представлено, каким образом нейронные сети способны помочь людям в генерации  знаний, которые основывались бы на всех первоначальных данных. Исследования в области нейронных сетей в основном достаточно наглядны. По сравнению с другими вычислительными методами в статистике и науке они имеют значительные преимущества. Так, у моделей на основе нейронных сетей очень гибкие теоретические требования; кроме того, им необходимы совсем небольшие объемы предварительных знаний относительно формирования задачи.

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

     В практической части работы были представлены модели прогнозирования цены на золото на последующий период. В результате применения и построения таких моделей, можно сказать, что достаточно несложная, с двумя скрытыми слоями и пятью «внутренними» нейронами, нейронная сеть может предсказывать изменение цены на золото за день вперед с погрешностью в цене примерно в 0,004358, что составит 5,66 рублей, что будет являться хорошим результатом, с учетом того, что дневные изменения цен на золото варьируются в пределах от 5 копеек до 66,16 рублей.

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