Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Лабораторная работа №8
РАЗРАБОТКА НЕЧЕТКИХ МОДЕЛЕЙ ПРИНЯТИЯ РЕШЕНИЙ
В СРЕДЕ MATLAB. НЕЧЕТКАЯ ЛОГИКА В ПРОГНОЗИРОВАНИИ
И АНАЛИЗЕ ВАЛЮТНЫХ ЦЕН НА ФИНАНСОВОМ РЫНКЕ
Цель работы ознакомиться с особенностями разработки реальных приложений.
Краткое теоретическое введение
В качестве примера построения и использования адаптивной системы нейpoнечеткого вывода рассмотрим процесс разработки нечеткой модели гибридной сети для решения задачи прогнозирования валютных цен на финансовом рынке.
Исходные данные взяты в Интернете по адресу FINANCE.UA. Для конкретности возьмем значения курсовой стоимости EUR за 1 единицу в период с 3 июля 2006 г. по 15 сентября 2006 г. Данную информацию представим в табличной форме (табл.8.1).
Задача заключается в том, чтобы, зная динамику изменения курсовой стоимости продажи валюты за фиксированный интервал времени, предсказать значение ее курсовой стоимости на определенный момент времени в будущем.
Таблица 8.1
Дата |
Курс EUR |
Дата |
Курс EUR |
Дата |
Курс EUR |
03.07.2006 |
642,0065 |
01.08.2006 |
644,7335 |
01.09.2006 |
648,9755 |
04.07.2006 |
645,8950 |
02.08.2006 |
644,3295 |
04.09.2006 |
647,2585 |
05.07.2006 |
645,9455 |
03.08.2006 |
646,2990 |
05.09.2006 |
649,0260 |
06.07.2006 |
646,0970 |
04.08.2006 |
645,4405 |
06.09.2006 |
646,9050 |
07.07.2006 |
643,1175 |
07.08.2006 |
645,9960 |
07.09.2006 |
646,0465 |
10.07.2006 |
645,2890 |
08.08.2006 |
648,9250 |
08.09.2006 |
642,9155 |
11.07.2006 |
643,9760 |
09.08.2006 |
648,3695 |
11.09.2006 |
642,0065 |
12.07.2006 |
643,1680 |
10.08.2006 |
650,3895 |
12.09.2006 |
642,0065 |
13.07.2006 |
642,4610 |
11.08.2006 |
649,2785 |
13.09.2006 |
641,8045 |
14.07.2006 |
640,9460 |
14.08.2006 |
645,1375 |
14.09.2006 |
640,1885 |
17.07.2006 |
639,6330 |
15.08.2006 |
642,2590 |
15.09.2006 |
642,5115 |
18.07.2006 |
633,3205 |
16.08.2006 |
642,6125 |
||
19.07.2006 |
632,8155 |
17.08.2006 |
646,0465 |
||
20.07.2006 |
630,3410 |
18.08.2006 |
650,3895 |
||
21.07.2006 |
638,4715 |
19.08.2006 |
646,5010 |
||
24.07.2006 |
640,3400 |
21.08.2006 |
646,5010 |
||
25.07.2006 |
637,9665 |
22.08.2006 |
652,4095 |
||
26.07.2006 |
638,1180 |
23.08.2006 |
647,0060 |
||
27.07.2006 |
635,6435 |
28.08.2006 |
647,0060 |
||
28.07.2006 |
638,1180 |
29.08.2006 |
646,3400 |
||
31.07.2006 |
639,5320 |
30.08.2006 |
646,8040 |
||
31.08.2006 |
647,3090 |
Для решения данной задачи применим модель адаптивных нейронечетких сетей.
Предположим, что нечеткая модель гибридной сети содержит четыре входные переменные. Первая соответствует курсу EUR на текущий банковский день, вторая курсу EUR на предыдущий банковский день, т. е. на день (i-1), где через i обозначен текущий банковский день, третья курсу EUR на (i-2) банковский день, а четвертая курсу EUR на (i-3) банковский день. Обучающие данные сведем в табл. 8.2. Объем полученной обучающей выборки равен 39, что соответствует динамике курса EUR в период с 3 июля 2006 г. по 15 сентября 2006 г. При этом данные за сентябрь 2006 г. не вошли в состав обучающей выборки и могут быть использованы для проверки адекватности построенной нечеткой модели.
Сохраним обучающую выборку во внешнем файле под именем priceEUR.dat. После этого откроем редактор ANFIS, в который загрузим этот файл с обучающими данными.
Таблица 8.2
Первая входная переменная |
Вторая входная переменная |
Третья входная переменная |
Четвертая входная переменная |
Выходная переменная |
646,0970 |
645,9455 |
645,8950 |
642,0065 |
643,1175 |
643,1175 |
646,0970 |
645,9455 |
645,8950 |
645,2890 |
645,2890 |
643,1175 |
646,0970 |
645,9455 |
643,9760 |
643,9760 |
645,2890 |
643,1175 |
646,0970 |
643,1680 |
643,1680 |
643,9760 |
645,2890 |
643,1175 |
642,4610 |
642,4610 |
643,1680 |
643,9760 |
645,2890 |
640,9460 |
640,9460 |
642,4610 |
643,1680 |
643,9760 |
639,6330 |
639,6330 |
640,9460 |
642,4610 |
643,1680 |
633,3205 |
633,3205 |
639,6330 |
640,9460 |
642,4610 |
632,8155 |
632,8155 |
633,3205 |
639,6330 |
640,9460 |
630,3410 |
630,3410 |
632,8155 |
633,3205 |
639,6330 |
638,4715 |
638,4715 |
630,3410 |
632,8155 |
633,3205 |
640,3400 |
640,3400 |
638,4715 |
630,3410 |
632,8155 |
637,9665 |
637,9665 |
640,3400 |
638,4715 |
630,3410 |
638,1180 |
638,1180 |
637,9665 |
640,3400 |
638,4715 |
635,6435 |
635,6435 |
638,1180 |
637,9665 |
640,3400 |
638,1180 |
638,1180 |
635,6435 |
638,1180 |
637,9665 |
639,5320 |
639,5320 |
638,1180 |
635,6435 |
638,1180 |
644,7335 |
644,7335 |
639,5320 |
638,1180 |
635,6435 |
644,3295 |
644,3295 |
644,7335 |
639,5320 |
638,1180 |
646,2990 |
646,2990 |
644,3295 |
644,7335 |
639,5320 |
645,4405 |
645,4405 |
646,2990 |
644,3295 |
644,7335 |
645,9960 |
645,9960 |
645,4405 |
646,2990 |
644,3295 |
648,9250 |
648,9250 |
645,9960 |
645,4405 |
646,2990 |
648,3695 |
648,3695 |
648,9250 |
645,9960 |
645,4405 |
650,3895 |
650,3895 |
648,3695 |
648,9250 |
645,9960 |
649,2785 |
649,2785 |
650,3895 |
648,3695 |
648,9250 |
645,1375 |
645,1375 |
649,2785 |
650,3895 |
648,3695 |
642,2590 |
642,2590 |
645,1375 |
649,2785 |
650,3895 |
642,6125 |
642,6125 |
642,2590 |
645,1375 |
649,2785 |
646,0465 |
646,0465 |
642,6125 |
642,2590 |
645,1375 |
650,3895 |
650,3895 |
646,0465 |
642,6125 |
642,2590 |
646,5010 |
646,5010 |
650,3895 |
646,0465 |
642,6125 |
646,5010 |
646,5010 |
646,5010 |
650,3895 |
646,0465 |
652,4095 |
652,4095 |
646,5010 |
646,5010 |
650,3895 |
647,0060 |
647,0060 |
652,4095 |
646,5010 |
646,5010 |
647,0060 |
647,0060 |
647,0060 |
652,4095 |
646,5010 |
646,3400 |
646,3400 |
647,0060 |
647,0060 |
652,4095 |
646,8040 |
646,8040 |
646,3400 |
647,0060 |
647,0060 |
647,3090 |
Нажатием кнопки Generate FIS… вызовем диалоговое окно свойств, где зададим для каждой из входных переменных по три лингвистических терма, а в качестве типа их функций принадлежности выберем треугольные функции (установленные системой MATLAB по умолчанию). В качестве типа функции принадлежности выходной переменной зададим линейную функцию.
Внешний вид редактора ANFIS с загруженными обучающими данными изображен на рис. 8.1.
Рис. 8.1
Для обучения гибридной сети воспользуемся гибридным методом обучения hybrid с уровнем ошибки 0, а количество циклов обучения зададим равным 10. Нажмем кнопку Train Now. После окончания обучения данной гибридной сети можно проанализировать график ошибки обучения (рис. 8.2).
Рис. 8.2
Посредством нажатия кнопки Structure окна Anfis Editor можно увидеть структуру сгенерированной системы нечеткого вывода, по которой визуально оценивается структура построенной нечеткой модели. Графическая наглядность данной модели оставляет желать лучшего, поскольку общее количество правил в разработанной адаптивной системе нейронечеткого вывода равно 81, что затрудняет их визуальный контроль и оценку.
С помощью графических средств системы MATLAB можно выполнить контроль и настройку параметров функций принадлежности входных переменных и правил нечетких продукций. Для выполнения соответствующих операций можно воспользоваться редактором функций принадлежности.
Поскольку точность количественных значений, обеспечиваемая графическими средствами пакета Fuzzy Logic Toolbox, недостаточна для решения данной задачи, воспользуемся функцией командной строки evalfis. В качестве аргументов этой функции укажем вектор значений курсовой стоимости EUR на текущий и три предшествующих банковских дня:
out=evalfis([647.3090 646.8040 646.3400 647.0060], priceEUR),
где out условное имя выходной переменной, числовые значения в [ ] значения курсовой стоимости EUR на 28.08.2006 31.08.2006.
После выполнения этой команды с помощью разработанной нечеткой модели получим значение выходной переменной на 1.09.2006, равное 648,9755. Сравнивая это значение с соответствующим значением из табл. 5.1, можно установить абсолютное совпадение этих значений, несмотря на два предупреждения при выполнении команды нечеткого вывода системой MATLAB.
Таким образом, проверка построенной нечеткой модели гибридной сети показывает достаточно высокую степень ее адекватности реальным исходным данным, что позволяет сделать вывод о возможности ее практического использования для прогнозирования курсовой стоимости EUR на финансовом рынке валют. В этом случае нечеткие модели адаптивных систем нейронечеткого вывода новые конструктивные инструменты технического анализа финансовых рынков.
Рассмотренный подход есть перспективное направление для построения и использования нечетких моделей прогнозирования цен финансовых инструментов, таких, как курсы валют, акций компаний, фьючерсов и опционов. Действительно, общее для всех инструментов с позиций технического анализа отсутствие априорных предположений о динамике колебаний соответствующих курсов цен, что вполне согласуется с исходными предпосылками построения нечетких моделей адаптивных систем нейронечеткого вывода.
Варианты заданий
Построить адаптивную систему нейpoнечеткого вывода, разработать нечеткую модель гибридной сети для решения задачи прогнозирования валютных цен на финансовом рынке:
PAGE 5
data set index
0 5 10 15 20 25 30 35 40
55
650
645
640
635
630
output
Training data
Training Error
Epochs
1.5
1
0.5
0
-0.5
-1
0 2 4 6 8 10
Errors