Полный архив примеров для книги выложен у нас на форуме. Отдельно взятый рабочий пример можно скачать в архиве. Главный файл называется Create. Прокомментирую текст основного файла. Формирование исходного массива данных.
P=mk. Обучение нейронной сети по методу Back Propagation Error (обратное распространение ошибки). Проверка граничных значений. Формирование тестового массива.
T=mk. Проверка созданной сети на тестовом массиве. Построение графика. В архиве вы можете скачать, как полученный мною пример, так и исходные данные к нему. Основной файл называется Create. Инициализация и исходные данные.
Исходные данные по торговому графику содержатся в файле VOLUMES. Предварительная обработка исходных данных. Из теории и из примера Хайкина я понимаю, что нейронная сеть работает со значениями временных рядов от 0 до 1. Исходные значения торгового графика в массиве VOLUMES.
Для использования нейронной сети необходимо предварительно отмасштабировать исходный временной ряд, как показано на рисунках. Предварительно мы имели значения от 5. После масштабирования мы стали иметь значения от 0 до 1. Настройка нейронной сети. Так как в примере Хайкина содержалась трехслойная полносвязнаянейронная сеть, то я на ней остановилась. Кроме того, из статей я знаю, что для прогнозирования энергопотребления чаще других используется именно трехслойная архитектура.
Структура нейронной сети получилась следующая. Структура разработанной нейронной сети. Не мудрствуя лукаво, оставила все значения, которые были установлены в примере Хайкина. Обучение сети. Двойной цикл по эпохам и внутренней корректировки весов я взяла в чистом виде из примера Хайкина.
Такое обучение называется обучением нейронной сети по методу back propagation error (обратное распространение ошибки). Изменения внесены только в части формирования входа и выхода нейронной сети. Общие комментарии по ходу алгоритма приведены в тексте программы. Тестовое прогнозирование.
На пятом шаге я формирую тестовый массив «T» и прогнозирую на полученной нейронной сети. Все прогнозирование в итоге сходится к нескольким строчкам кода. Оценка ошибки прогнозирования. На последнем шаге я вычисляю значения ошибки прогнозирования временных рядов MAE и MAPE.
Однако мы знаем, что это далеко не предел точности! Аналогичное значение MAPE для того же самого временного ряда в отчете за аналогичный период (за 2. Подробности можно посмотреть в отчете Точность прогнозирования за истекшие периоды. В упомянутом отчете временной ряд назван для краткости ТГ ЕЦЗ (торговый график европейской ценовой зоны). Программа Расчета Энергетической Ценности. Все параметры сети были из примера по книге Хайкина.
И полгода на приличный результат мало! Если у вас возник вопрос вроде «а где в коде то и се?», то имейте в виду, что я не буду впредь на эти вопросы отвечать — задавать их тут бесполезно. Для того, чтобы найти ответ на такого сорта вопрос нужно внимательно пошагово прогнать программу и разобраться. Если, не смотря на внимательный разбор кода примера, вопрос все равно остался, то задумайтесь, тем ли вы занимаетесь. Математическое моделирование — сфера деятельности, подходящая далеко не всем.