Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/42: Рейтинг темы: голосов - 42, средняя оценка - 4.86
 Аватар для Jettard
41 / 39 / 7
Регистрация: 27.05.2010
Сообщений: 252

Прогнозирование курса гривны к 4 другим валютам методом скользящих окон, используя нейронные сети

05.06.2013, 17:31. Показов 8157. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Задача состоит в прогнозировании курса гривны к 4 другим валютам методом скользящих окон, используя нейронные сети. Все это надо сделать в Matlab. Я уже какой день ищу в интернете - ничего нормального найти не могу. Если у кого-то есть по этому хорошая инфа, пожалуйста, отпишитесь.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.06.2013, 17:31
Ответы с готовыми решениями:

Нейронные сети: Выполнить прогнозирование на завтра. Обучить программу
Привет всем! Помогите с программой на C#, необходимо выполнить задание с помощью прогнозирование в нейронных сетях. Входные данные: ...

Обработка изображений. Использование скользящих окон
Здравствуйте! Нужно на 2-x изображениях (это соседние кадры видео) определить область, где происходит изменение картинки, и далее работать...

Что определяет цену каждой валюты по отношению к другим валютам?
Что определяет цену каждой валюты по отношению к другим валютам? Может, спрос на эту валюту среди участников рынка. А может,...

9
 Аватар для tvoretsmira
462 / 452 / 56
Регистрация: 28.05.2013
Сообщений: 699
05.06.2013, 19:12
Метод скользящего окна предполагает сглаживание за счёт соседних точек. Но если взять скажем понедельник за текущую точку, тогда для того чтобы вычислить среднее в окне нужны данные за воскресенье, а за воскресенье НБУ курса валют не даёт. И на майских они теже не работали.
0
 Аватар для Jettard
41 / 39 / 7
Регистрация: 27.05.2010
Сообщений: 252
05.06.2013, 19:30  [ТС]
Цитата Сообщение от tvoretsmira Посмотреть сообщение
Метод скользящего окна предполагает сглаживание за счёт соседних точек. Но если взять скажем понедельник за текущую точку, тогда для того чтобы вычислить среднее в окне нужны данные за воскресенье, а за воскресенье НБУ курса валют не даёт. И на майских они теже не работали.
У меня среднегодовые данные. С 1996 по 2012. Надо сделать прогноз на 2013 год(точность прогноза низкая, но главное это принцип работы сети и самого метода скользящих окон).
0
 Аватар для tvoretsmira
462 / 452 / 56
Регистрация: 28.05.2013
Сообщений: 699
05.06.2013, 19:58
Пока что ищю набор даных
0
 Аватар для Jettard
41 / 39 / 7
Регистрация: 27.05.2010
Сообщений: 252
05.06.2013, 20:12  [ТС]
Цитата Сообщение от tvoretsmira Посмотреть сообщение
Пока что ищю набор даных
Вот оригинальный файл, и который, я предполагаю использовать для анализа.
Вложения
Тип файла: xlsx used.xlsx (7.9 Кб, 111 просмотров)
Тип файла: rar original.rar (92.0 Кб, 111 просмотров)
0
 Аватар для tvoretsmira
462 / 452 / 56
Регистрация: 28.05.2013
Сообщений: 699
05.06.2013, 22:17
Вот так я загнал данные в Матлаб:
Matlab M
1
2
3
4
GBP=[285.64 305.08  406.89  668.45  824.99  773.94  799.84  871.28  973.91  933.76  929.45  1010.69 966.88  1219.48 1226.89 1277.71 1266.38];
USD=[182.95 186.17  244.95  413.04  544.02  537.21  532.66  533.27  531.92  512.47  505 505 526.72  779.12  793.56  793.56  799.1];
CHF=[148.25 128.45  171.01  274.53  322.46  318.71  342.88  396.14  428.18  412.75  402.78  421.16  486.09  719.5   762.61  901.41  852.08];
JPY=[16.84  15.41   19.03   36.61   50.52   44.27   42.59   46.13   49.21   46.68   43.4    42.92   51.4    83.45   90.52   100.04  100.19];
Функция реализующая скользящее окно, где m, это размер окна. Учитывая что даных мало стоит принять m=3. Т.е. 3 года в одном окне. Образованый таким образом набор даных начинается с 1997 и заканчивается 2011. Потому как окно 2011го включает 2010,2011 и 2012 года. Потому прогноз прийдётся делать на 2 года вперёд. Чтоб получить окно 2013 года.
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
function y= SlWind(x,m)
%[url]http://wiki.web.ru/wiki/Метод_Скользящего_окна[/url]
lenx=size(x,2);
imin=1+(m-1)/2;
imax=lenx-(m-1)/2;
iset=imin:imax;
leni=length(iset);
y=zeros(size(x,1),leni);
for ik=1:leni
  ind=(iset(ik)-(m-1)/2):(iset(ik)+(m-1)/2);
  y(:,ik)=sum(x(:,ind),2)/m;
end
end
В командном окне:
Matlab M
1
2
y= SlWind(GBP,3);%Подготовим данные для нейронки с помощью окна
y2013=Curr(y)%Затем вызовем функцию выдающую прогноз на 2013 год
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function y2013=Curr(y)
targetSeries = tonndata(y,true,false);
feedbackDelays = 2:3;%минимум 2 года в линию задержек так как на 2 года вперёд будет прогноз
hiddenLayerSize = 2;%если взять больше нейронов, то получится что параметров сети больше чем данных
net = narnet(feedbackDelays,hiddenLayerSize);
net.inputs{1}.processFcns = {'removeconstantrows','mapminmax'};
[inputs,inputStates,layerStates,targets] = preparets(net,{},{},targetSeries);
net.divideFcn = ''; % нечего тут делить и так данных мало
net.trainFcn = 'trainbr';  
net.performFcn = 'mse';  % среднеквадратическая ошибка
net.plotFcns = {'plotperform','plottrainstate','plotresponse', ...
  'ploterrcorr', 'plotinerrcorr'};
outputs = net(inputs,inputStates,layerStates);
errors = gsubtract(targets,outputs);
performance = perform(net,targets,outputs)
view(net)
nets = removedelay(net,2);
[xs,xis,ais,ts] = preparets(nets,{},{},targetSeries);
ys = nets(xs,xis,ais);
y2013=ys{end}
view(nets)
end
3
 Аватар для Jettard
41 / 39 / 7
Регистрация: 27.05.2010
Сообщений: 252
05.06.2013, 22:23  [ТС]
Спасибо большое за решение! Я обязательно попробую это у себя.

З.Ы.Версия Матлаба не имеет значения?(у меня самый последний)

Также попробовал сделать это все в специальной тулзе матлаба - Neural Network Toolbox. Вроде все нормально, но я не совсем понимаю где взять результат, где именно прогнозированное значение валют?
0
 Аватар для tvoretsmira
462 / 452 / 56
Регистрация: 28.05.2013
Сообщений: 699
13.06.2013, 09:52
Прогнозированное значение возвращается в этой строке:
Цитата Сообщение от tvoretsmira Посмотреть сообщение
ys = nets(xs,xis,ais);
Сначала линия задержки заполняется данными за 2 окна (будем считать что 2-ой год в окне из 3-х годов обозначает это окно). Одно окно в линии задержек за прошедший, 2-ое за текщий год. По этим данным нейронная сеть выдаёт результат на 2 окна вперёд. (Заметьте, сетка к этой строке в программе уже была обучена прогнозировать результат на текущий год исходя из значений за прошлые 2-ой и 3-ий года. Затем командой nets = removedelay(net,2); линия задержек вместе с выходным значением была смещена на 2 года вперёд. При этом весы и смещения нейронной сети остались теми же.)
Далее на вход сетки последовательно подаются данные за каждый последующий год заполняя линию задержек и прогнозируя ещё на 2 года вперёд. Т.е.

в задержке 1 19971998199920002001200220032004200520062007200820092010
в задержке 019981999200020012002200320042005200620072008200920102011
на выходе из сети20002001200220032004200520062007200820092010201120122013

Как видите на выходе из сети есть и те года, которые уже прошли. И только последние 2 по сути являются прогнозом.
1
533 / 438 / 47
Регистрация: 17.07.2013
Сообщений: 2,236
01.07.2018, 21:37
Цитата Сообщение от tvoretsmira Посмотреть сообщение
net.trainFcn = 'trainbr';
А эту почему взяли? Я бы начал с ml
0
533 / 438 / 47
Регистрация: 17.07.2013
Сообщений: 2,236
02.07.2018, 07:32
net.trainFcn = 'trainbml';
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.07.2018, 07:32
Помогаю со студенческими работами здесь

Определить заработок на колебании курса акций в декадах. Тема: Прогнозирование
Контрольное задание: Определите, сколько Вы заработаете, приобретя 10 акций предприятия, если колебания их курса следующие:

Работа с TChart: сделать Линию тренда (прогнозирование курса валют)
Я построил график с базы данных, в котором по х - дата, а по y - курс доллара. Мне нужно сделать Линию тренда(прогнозирование курса...

Нейронные сети. Ошибка при обработке изоброжения для транировки сети
Здравствуйте, Работа над нейросетью в срде матлаб. На моменте с работой базой данных изображений возникла проблема. Исходый код: ...

Нейронные сети (адаптивные сети)
нужен исходник 3д или 2д адаптивной сетки для небольшого использования в своей работе (растягивалась что бы на какуюнить фигуру на...

Прогнозирование методом наименьших квадратов
Здравствуйте! Дан файл временного ряда, требуется дать прогноз при помощи метода наименьших квадрат. Заранее спасибо! Начал...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru