Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Арменчу Диплом.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
311.35 Кб
Скачать

2.2 Моделювання процесу прогнозування та вирішення задачі в середовищі matlab

Однією з найбільш необхідних завдань при проведенні аналізу фінансового ринку є отримання прогнозних значень деяких найбільш значимих фінансових коефіцієнтів таких як, наприклад курси валют. У даному проекті ми будемо займатися прогнозуванням курсу японської ієни до рубля. Як і планування, прогнозування - це рід передбачення, оскільки має справу з отриманням інформації про майбутнє. У нашій роботі ми будемо використовувати технології нейронних мереж для побудови систем нечіткого виводу.

Нейромережеві технології - це комп'ютерний алгоритм, роботу якого можна умовно розділити на два основних етапи: навчання та побудова прогнозу. На першому етапі на вхід мережі подаються дані, необхідні для формування навчальної вибірки. Мережа аналізує і знаходить взаємозв'язок між рядами даних навчальної вибірки за період часу N, де N - кількість спостережень навчальної вибірки. Навчальна вибірка містить два типи параметрів - визначальні (вхідні) і прогнозовані (вихідні).

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

На етапі навчання виникають дві головні проблеми: яким чином слід встановити параметри навчання і коли слід зупинити процес навчання. На сьогоднішній день не існує ніяких алгоритмів, за допомогою яких можна було б налаштувати параметри навчання під конкретне завдання.[23]

Особливістю нейронних мереж є те, яким чином відбувається обробка даних. При використанні стандартного алгоритму зворотного поширення помилки мережа «бачить» і аналізує дані вихідної матриці рядами. Щоб нейронна мережа змогла «побачити» тренди, потрібно представити дані таким чином, щоб у кожному рядку навчальної матриці відбивалася «історія» часового ряду тобто містилася інформація як про поточний спостереженні, так і про минулі.

При вирішенні нашого завдання ми будемо враховувати п'ятиденну історію, тобто всі зміни, які відбувалися протягом попереднього тижня. Тут потрібно зауважити, що спроби розглядати більш довгу «історію» призводять до скорочення числа спостережень у навчальній вибірці і до одночасного невиправданого її зростанню «вшир», що може негативно вплинути на здатність мережі до навчання.

Тепер необхідно перетворити наявну інформацію в вигляд зрозумілий і змістовний для мережі.

Неможливо отримати скільки задовільний результат за допомогою нейронних мереж, подавши на вхід необроблені дані. Для роботи з нейронними мережами важливо не тільки ретельно відібрати показники: необхідно також подати їх у певній, зрозумілою для мережі формі. Можна виділити два основних правила, згідно з якими формується навчальна вибірка.У якості вихідних даних можна скористатися інформацією про динаміку продажу курсу по валюті "Долар США" (USD) за певний часовий інтервал, яка доступна в Інтернеті за адресою: http://finance.ua/. Для конкретності візьмемо значення курсової вартості USD за 1 одиницю в період з 1 січня 2013 р. по 30 квітня 2013 Дану інформацію для зручності подальшої роботи представимо в табличній формі (Табл. 2.1).

Як було сказано вище, у даній роботі ми розглянемо два варіанти введення вхідних даних: введення абсолютних значень, та введення їхніх приростів. Таблиця значень приростів валютних курсів приведена нижче (Табл. 2.2). Спочатку розглядатимемо метод з введенням абсолютних значень.

Таблиця 2.1

Динаміка продажу курсу іноземної валюти (USD) в період з 1.01.13 по 30.04.13

Дата

Курс USD

Дата

Курс USD

Дата

Курс USD

Дата

Курс USD

03.01.2013

8,08

01.02.2013

8,15

01.03.2013

8,144

01.04.2013

8,135

04.01.2013

8,08

04.02.2013

8,16

04.03.2013

8,148

02.04.2013

8,15

08.01.2013

8,07

05.02.2013

8,16

05.03.2013

8,149

03.04.2013

8,154

09.01.2013

8,06

06.02.2013

8,16

06.03.2013

8,146

04.04.2013

8,155

10.01.2013

8,07

07.02.2013

8,145

07.03.2013

8,14

05.04.2013

8,145

11.01.2013

8,08

08.02.2013

8,15

11.03.2013

8,14

08.04.2013

8,14

14.01.2013

8,17

11.02.2013

8,129

12.03.2013

8,13

09.04.2013

8,139

15.01.2013

8,17

12.02.2013

8,14

13.03.2013

8,125

10.04.2013

8,138

16.01.2013

8,17

13.02.2013

8,13

14.03.2013

8,135

11.04.2013

8,138

17.01.2013

8,15

14.02.2013

8,12

15.03.2013

8,129

12.04.2013

8,135

18.01.2013

8,155

15.02.2013

8,13

18.03.2013

8,13

15.04.2013

8,135

21.01.2013

8,155

18.02.2013

8,125

19.03.2013

8,135

16.04.2013

8,139

22.01.2013

8,16

19.02.2013

8,13

20.03.2013

8,139

17.04.2013

8,14

23.01.2013

8,16

20.02.2013

8,14

21.03.2013

8,145

18.04.2013

8,14

24.01.2013

8,16

21.02.2013

8,14

22.03.2013

8,135

19.04.2013

8,145

25.01.2013

8,16

22.02.2013

8,138

25.03.2013

8,15

22.04.2013

8,139

28.01.2013

8,16

25.02.2013

8,138

26.03.2013

8,145

23.04.2013

8,14

29.01.2013

8,15

26.02.2013

8,139

27.03.2013

8,14

24.04.2013

8,14

30.01.2013

8,15

27.02.2013

8,15

28.03.2013

8,145

25.04.2013

8,14

31.01.2013

8,15

28.02.2013

8,15

29.03.2013

8,145

26.04.2013

8,14

 

 

 

 

 

 

27.04.2013

8,139

 

 

 

 

 

 

29.04.2013

8,14

 

 

 

 

 

 

30.04.2013

8,138

Таблиця. 2.2

Таблиця значень приростів валютних курсів

Перша вхідна змінна

Друга вхідна змінна

Третя вхідна змінна

Четверта вхідна змінна

П’ята вхідна змінна

Вихідна змінна

0.001239

0.001241

-0.00124

-0.00124

0

0.011139

0.011139

0.001239

0.001241

-0.00124

-0.00124

0

0

0.011139

0.001239

0.001241

-0.00124

0

0

0

0.011139

0.001239

0.001241

-0.00245

-0.00245

0

0

0.011139

0.001239

0.000613

0.000613

-0.00245

0

0

0.011139

0

0

0.000613

-0.00245

0

0

0.000613

0.000613

0

0.000613

-0.00245

0

0

0

0.000613

0

0.000613

-0.00245

0

0

0

0.000613

0

0.000613

0

0

0

0

0.000613

0

0

0

0

0

0

0.000613

-0.00123

-0.00123

0

0

0

0

0

0

-0.00123

0

0

0

0

0

0

-0.00123

0

0

0

0

0

0

-0.00123

0

0

Продовження таблиці 2.2

0

0

0

0

-0.00123

0.001227

0.001227

0

0

0

0

0

0

0.001227

0

0

0

0

0

0

0.001227

0

0

-0.00184

-0.00184

0

0

0.001227

0

0.000614

0.000614

-0.00184

0

0

0.001227

-0.00258

-0.00258

0.000614

-0.00184

0

0

0.001353

0.001353

-0.00258

0.000614

-0.00184

0

-0.00123

-0.00123

0.001353

-0.00258

0.000614

-0.00184

-0.00123

-0.00123

-0.00123

0.001353

-0.00258

0.000614

0.001232

0.001232

-0.00123

-0.00123

0.001353

-0.00258

-0.00062

-0.00062

0.001232

-0.00123

-0.00123

0.001353

0.000615

0.000615

-0.00062

0.001232

-0.00123

-0.00123

0.00123

0.00123

0.000615

-0.00062

0.001232

-0.00123

0

0

0.00123

0.000615

-0.00062

0.001232

-0.00025

-0.00025

0

0.00123

0.000615

-0.00062

0

0

-0.00025

0

0.00123

0.000615

0.000123

0.000123

0

-0.00025

0

0.00123

0.001352

0.001352

0.000123

0

-0.00025

0

0

Продовження таблиці 2.2

0

0.001352

0.000123

0

-0.00025

-0.00074

-0.00074

0

0.001352

0.000123

0

0.000491

0.000491

-0.00074

0

0.001352

0.000123

0.000123

0.000123

0.000491

-0.00074

0

0.001352

-0.00037

-0.00037

0.000123

0.000491

-0.00074

0

-0.00074

-0.00074

-0.00037

0.000123

0.000491

-0.00074

0

0

-0.00074

-0.00037

0.000123

0.000491

-0.00123

-0.00123

0

-0.00074

-0.00037

0.000123

-0.00062

-0.00062

-0.00123

0

-0.00074

-0.00037

0.001231

0.001231

-0.00062

-0.00123

0

-0.00074

-0.00074

-0.00074

0.001231

-0.00062

-0.00123

0

0.000123

0.000123

-0.00074

0.001231

-0.00062

-0.00123

0.000615

0.000615

0.000123

-0.00074

0.001231

-0.00062

0.000492

0.000492

0.000615

0.000123

-0.00074

0.001231

0.000737

0.000737

0.000492

0.000615

0.000123

-0.00074

-0.00123

-0.00123

0.000737

0.000492

0.000615

0.000123

0.001844

0.001844

-0.00123

0.000737

0.000492

0.000615

-0.00061

-0.00061

0.001844

-0.00123

0.000737

0.000492

-0.00061

-0.00061

-0.00061

0.001844

-0.00123

0.000737

0.000614

Продовження таблиці 2.2

0.000614

-0.00061

-0.00061

0.001844

-0.00123

0

0

0.000614

-0.00061

-0.00061

0.001844

-0.00123

-0.00123

0

0.000614

-0.00061

-0.00061

0.001844

0.001844

-0.00123

0

0.000614

-0.00061

0.000491

0.000491

0.001844

-0.00123

0

0.000614

0.000123

0.000123

0.000491

0.001844

-0.00123

0

-0.00123

-0.00123

0.000123

0.000491

0.001844

-0.00123

-0.00061

-0.00061

-0.00123

0.000123

0.000491

0.001844

-0.00012

-0.00012

-0.00061

-0.00123

0.000123

0.000491

-0.00012

-0.00012

-0.00012

-0.00061

-0.00123

0.000123

0

0

-0.00012

-0.00012

-0.00061

-0.00123

-0.00037

-0.00037

0

-0.00012

-0.00012

-0.00061

0

0

-0.00037

0

-0.00012

-0.00012

0.000492

0.000492

0

-0.00037

0

-0.00012

0.000123

0.000123

0.000492

0

-0.00037

0

0

0

0.000123

0.000492

0

-0.00037

0.000614

0.000614

0

0.000123

0.000492

0

-0.00074

-0.00074

0.000614

0

0.000123

0.000492

0.000123

0.000123

-0.00074

0.000614

0

0.000123

0

Продовження таблиці 2.2

0

0.000123

-0.00074

0.000614

0

0

0

0

0.000123

-0.00074

0.000614

0

0

0

0

0.000123

-0.00074

-0.00012

-0.00012

0

0

0

0.000123

0.000123

0.000123

-0.00012

0

0

0

-0.00025

Припустимо, що нечітка модель гібридної мережі буде містити 4 вхідних змінних. При цьому перша вхідна змінна буде відповідати курсу USD на поточний банківський день, друга - курсом USD на попередній банківський день, тобто на день де через позначений поточний банківський день. Тоді третя вхідна змінна буде відповідати курсу USD на банківський день, а четверта - курсу USD на банківський день.

Відповідні навчальні дані можуть бути зведені в окрему таблицю. Обсяг отриманої таким чином навчальної вибірки дорівнює 80 (табл. 2.3), що відповідає динаміці курсу USD в період з 1січня 2013 р. по 30 квітня 2013 р. При цьому дані за травень 2013 р. не увійшли до складу навчальної вибірки і можуть бути використані для перевірки адекватності побудованої нечіткої моделі.

Таблиця. 2.3

Навчальна вибірка, яку ми будемо використовувати в ANFIS

Перша вхідна змінна

Друга вхідна змінна

Третя вхідна змінна

Четверта вхідна змінна

Вихідна змінна

8.06

8.07

8.08

8.08

8.07

8.07

8.06

8.07

8.08

8.08

8.08

8.07

8.06

8.07

8.17

8.17

8.08

8.07

8.06

8.17

8.17

8.17

8.08

8.07

8.17

8.17

8.17

8.17

8.08

8.15

8.15

8.17

8.17

8.17

8.155

8.155

8.15

8.17

8.17

8.155

8.155

8.155

8.15

8.17

8.16

8.16

8.155

8.155

8.15

8.16

8.16

8.16

8.155

8.155

8.16

8.16

8.16

8.16

8.155

8.16

8.16

8.16

8.16

8.16

8.16

8.16

8.16

8.16

8.16

8.15

8.15

8.16

8.16

8.16

8.15

Продовження таблиці 2.3

8.15

8.15

8.16

8.16

8.15

8.15

8.15

8.15

8.16

8.15

8.15

8.15

8.15

8.15

8.15

8.15

8.15

8.15

8.15

8.16

8.16

8.15

8.15

8.15

8.16

8.16

8.16

8.15

8.15

8.16

8.16

8.16

8.16

8.15

8.145

8.145

8.16

8.16

8.16

8.15

8.15

8.145

8.16

8.16

8.129

8.129

8.15

8.145

8.16

8.14

8.14

8.129

8.15

8.145

8.13

8.13

8.14

8.129

8.15

8.12

8.12

8.13

8.14

8.129

8.13

8.13

8.12

8.13

8.14

8.125

8.125

8.13

8.12

8.13

8.13

8.13

8.125

8.13

8.12

8.14

8.14

8.13

8.125

8.13

8.14

8.14

8.14

8.13

8.125

8.138

8.138

8.14

8.14

8.13

8.138

8.138

8.138

8.14

8.14

8.139

8.139

8.138

8.138

8.14

8.15

8.15

8.139

8.138

8.139

8.15

8.15

8.15

8.139

8.138

8.144

8.144

8.15

8.15

8.139

8.148

8.148

8.144

8.15

8.15

8.149

8.149

8.148

8.144

8.15

8.146

8.146

8.149

8.148

8.144

8.14

8.14

8.146

8.149

8.148

8.14

Продовження таблиці 2.3

8.14

8.14

8.146

8.149

8.13

8.13

8.14

8.14

8.146

8.125

8.125

8.13

8.14

8.14

8.135

8.135

8.125

8.13

8.14

8.129

8.129

8.135

8.125

8.13

8.13

8.13

8.129

8.135

8.125

8.135

8.135

8.13

8.129

8.135

8.139

8.139

8.135

8.13

8.129

8.145

8.145

8.139

8.135

8.13

8.135

8.135

8.145

8.139

8.135

8.15

8.15

8.135

8.145

8.139

8.145

8.145

8.15

8.135

8.145

8.14

8.14

8.145

8.15

8.135

8.145

8.145

8.14

8.145

8.15

8.145

8.145

8.145

8.14

8.145

8.135

8.135

8.145

8.145

8.14

8.15

8.15

8.135

8.145

8.145

8.154

8.154

8.15

8.135

8.145

8.155

8.155

8.154

8.15

8.135

8.145

8.145

8.155

8.154

8.15

8.14

8.14

8.145

8.155

8.154

8.139

8.139

8.14

8.145

8.155

8.138

8.138

8.139

8.14

8.145

8.138

8.138

8.138

8.14

8.145

8.135

8.135

8.138

8.138

8.139

8.135

8.135

8.135

8.138

8.138

8.139

8.139

8.135

8.135

8.138

8.14

8.14

8.139

8.135

8.135

8.14

Продовження таблиці 2.3

8.14

8.14

8.139

8.135

8.145

8.145

8.14

8.14

8.139

8.139

8.139

8.145

8.14

8.14

8.14

8.14

8.139

8.145

8.14

8.14

8.14

8.14

8.139

8.145

8.14

8.14

8.14

8.14

8.139

8.14

8.14

8.14

8.14

8.14

8.139

8.139

8.14

8.14

8.14

8.14

8.14

8.139

8.14

8.14

8.138

Малюнок робочого вікна редактора ANFIS із завантаженою навчальною вибіркою представлено на малюнку нижче (Рис. 2.2)

Рис. 2.2 Графічний інтерфейс редактора ANFIS після завантаження навчальних даних

Перед генерацією структури системи нечіткого висновку типу Сугено задамо для кожної з вхідних змінних по 3 лінгвістичних терма, а в якості типу їх функцій належності виберемо трикутні функції. В якості типу функції належності вихідної змінної задамо лінійну функцію (Рис. 2.3)

Рис. 2.3 Діалогове вікно для завдання кількості і типу функцій приналежності

Для навчання гібридної мережі скористаємося гібридним методом навчання з рівнем помилки 0, а кількість циклів навчання задамо рівним 40. Після закінчення навчання даної гібридної мережі може бути виконаний аналіз графіка помилки навчання (Рис. 2.4), який показує, що навчання практично закінчилося після 7-го циклу. Алгоритм навчання було описано у попередньому пункті.

Рис. 2.4 Графік залежності помилки навчання від кількості циклів навчання

Після навчання гібридної мережі можна візуально оцінити структуру побудованої нечіткої моделі (Рис. 2.5). Графічна наочність даної моделі залишає бажати кращого, оскільки загальна кількість правил в розробленій адаптивної системі нейро-нечіткого виводу дорівнює 81, що ускладнює їх візуальний контроль і оцінку.

Рис. 2.5 Структура згенерованої системи нечіткого виводу

За допомогою графічних засобів системи МАТLАВ можна виконати контроль і налаштування параметрів функцій належності вхідних змінних і правил нечітких продукцій. Для виконання відповідних операцій можна скористатися редактором функцій належності. Проте до перевірки адекватності побудованої нечіткої моделі залишимо всі параметри функцій належності без змін.

Протестуємо систему нечіткого виводу спочатку на навчальній вибірці, а потім на останніх відомих значеннях курсу долара. Знову складаємо таблицю входять даних, до якої увійшли дані за травень (Табл. 2.4), яку будемо використовувати для перевірки точності роботи. Тестуюча вибірка відображена в таблиці (Табл. 2.5).

Результати тестування, приведені на малюнку нижче (Рис. 2.7). Як ми можемо бачити, середня помилка при тестуванні складає 0.012247.

Таблиця 2.4

Динаміка продажу курсу іноземної валюти (USD) в період з 1.05.13 по 31.05.13

Курс USD

Дата

8,12

7

8,12

8

8,119

13

8,139

14

8,155

15

8,159

16

8,165

17

8,156

18

8,16

20

8,16

21

8,165

22

8,165

23

8,17

24

8,169

27

8,169

28

8,169

29

8,159

30

8,16

31

Таблиця 2.5

Вибірка вхідних даних для тестування системи нечіткого виводу

Перша вхідна змінна

Друга вхідна змінна

Третя вхідна змінна

Четверта вхідна змінна

Вихідна змінна

8.139

8.119

8.12

8.12

8.155

8.155

8.139

8.119

8.12

8.159

Продовження таблиці 2.5

8.159

8.155

8.139

8.119

8.165

8.165

8.159

8.155

8.139

8.156

8.156

8.165

8.159

8.155

8.16

8.16

8.156

8.165

8.159

8.16

8.16

8.16

8.156

8.165

8.165

8.165

8.16

8.16

8.156

8.165

8.165

8.165

8.16

8.16

8.17

8.17

8.165

8.165

8.16

8.169

8.169

8.17

8.165

8.165

8.169

8.169

8.169

8.17

8.165

8.169

8.169

8.169

8.169

8.17

8.159

8.159

8.169

8.169

8.169

8.16

Рис. 2.7 Графічний інтерфейс редактора ANFIS після завантаження тестувальних даних

Результати перевірки адекватності наведені у наступному розділі.

Перейдемо до другого методу вводу даних, який було запропоновано вище. Дані, які будуть введені, представлені у таблиці 2.2. Існує твердження, що нейронні мережі краще реагують не на абсолютні значення, а на ряди збільшень. Цей факт можна пояснити тим, що в нейронній мережі задається діапазон значень, який визначається найбільшим і найменшим значеннями з навчальної вибірки. Якщо цей діапазон великий, а самі значення при переході від спостереження до спостереження змінюється на незначну в порівнянні з діапазоном величину, то нейронна мережа просто не надасть належного значення цим змінам. Крім того, використання при роботі з мережею збільшень дозволяє отримувати прогноз у разі, коли абсолютні значення змінних, на основі яких будується прогноз, виходять за межі діапазону встановленого при навчанні.

Таким чином, щоб оптимізувати навчання і роботу мережі, всі абсолютні значення даних були перетворені до приростів за формулою (2.1)

Після завантаження навчальної вибірки, редактор ANFIS зображена на малюнку (Рис. 2.8)

Рис. 2.8 Графічний інтерфейс редактора ANFIS після завантаження навчальних даних

Згенеруємо систему нечіткого виводу типу Сугено натисканням кнопки Generate FIS .... У вікні задамо для кожної вхідної змінної по 3 функції приналежності типу gaussmf. Вибір функції приналежності тут обумовлений тим, що ми предполгаем нормальний розподіл для випадкової величини (Курс USD), яке якраз визначається гауссовською функцією по Теорії Ймовірності. Для вихідної змінної задамо функцію приналежності const. Для навчання гібридної мережі виберемо метод hybrid (зворотного поширення помилки) з рівнем помилки 0 і кількістю циклів 100. За результатами навчання середня помилка складає всього лише приблизно 0.000518219. Дані для тестування наведені у таблиці (Табл. 2.6)

Середня помилка при тестуванні складає 0.0034449.

Таблиця 2.6

Вибірка вхідних даних для тестування системи нечіткого виводу

Перша вхідна змінна

Друга вхідна змінна

Третя вхідна змінна

Четверта вхідна змінна

П’ята вхідна змінна

Вихідна змінна

0.0004905

0.0019658

0.0024634

-0.0001232

0

0.0007354

0.0007354

0.0004905

0.0019658

0.0024634

-0.0001232

-0.0011023

-0.0011023

0.0007354

0.0004905

0.0019658

0.0024634

0.0004904

0.0004904

-0.0011023

0.0007354

0.0004905

0.0019658

0

0

0.0004904

-0.0011023

0.0007354

0.0004905

0.0006127

0.0006127

0

0.0004904

-0.0011023

0.0007354

0

0

0.0006127

0

0.0004904

-0.0011023

0.0006124

0.0006124

0

0.0006127

0

0.0004904

-0.0001224

-0.0001224

0.0006124

0

0.0006127

0

0

0

-0.0001224

0.0006124

0

0.0006127

0

0

0

-0.0001224

0.0006124

0

-0.0012241

-0.0012241

0

0

-0.0001224

0.0006124

0.0001226

0.0004905

0.0019658

0.0024634

-0.0001232

0

0.0007354

Перевірка на адекватність даної моделі наведена у наступному пункті.