Общий вопрос по прогнозированию

25 сообщений / 0 новых
Последнее сообщение
Общий вопрос по прогнозированию

Сначала скажу спасибо за само существования данного сайта, так как он помог сначала разобраться в теории немного.

Теперь вопрос-по исследовательской работе студента взялся за прогнозирование некой величины и учетом влияющих факторов на эту величину. Вопрос-является ли прогнозирование ветра (его скорости) частным случаем прогнозирования временных рядов?

Пожалуйста!

Пожалуйста!

Quote:
является ли прогнозирование ветра (его скорости) частным случаем прогнозирования временных рядов

Любая величина, которая зависит от времени, может быть интерпретирована как временной ряд. У вас данные по скорости ветра даны за какой период? в каком временном разрешении?

----------------------
Ирина Чучуева,
команда Математического бюро

Честно говоря еще не получил

Честно говоря еще не получил исходных данных для работы, а только занимаюсь изучением темы, ознакамливаюсь с возможными методами прогнозирования (а конкретно с нейросетями), разбираюсь с их работой и алгоритмами обучения.

Вообще по идеи у меня в задании сказано УЛУЧШЕНИЕ с учетом внешних параметров, то наверняка будет дана какая-то реальная выборка и я буду с ней работать.

 

Хотел бы еще такой вопрос задать. За короткое время ознакомления с нейросетями обнаружил следующие типы сетей для прогнозирования: многослойный персептрон, сеть с имитацией отжига и сети с генетическим алгоримом (извиняюсь за возможную неточность в терминологии). Правильно ли я классифицировал данные сети для прогнозирования.?

Сначала данные, потом инструмент
Quote:
Честно говоря еще не получил исходных данных для работы

Я считаю, что сначала нужно дождаться данных, а после выбирать инструмент. Если у вас окажется 100 значений, то использовать нейросети будет невозможно, так как для их обучения нужна приличная выборка.

Quote:
в задании сказано УЛУЧШЕНИЕ с учетом внешних параметров

Если нужно улучшить, то я бы посоветовала познакомится с тем, что уже сделано: какая модель применяется, используются ли внешние факторы, какова ошибка на сегодняшний день, давно ли этим занимаются.

Quote:
типы сетей для прогнозирования: многослойный персептрон, сеть с имитацией отжига и сети с генетическим алгоритмом

Классификация сетей есть в Хайкине в самом начале. Скорее всего сеть с генетическим алгоритмом — это просто два алгоритма, используемые для решения одной и той же задачи. Возможная интерпретация: ANN делают кластеризацию, а GA делает прогноз внутри кластера. Подробнее читайте у нас в теме про консенсус-прогноз.

----------------------
Ирина Чучуева,
команда Математического бюро

Мне руководитель сказала, что

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

Модель (если она существует) исходную получу в начале следующей недели. Как только ознакомлюсь с ней, сразу сообщу Вам если будут какие-то вопросы.

Спасибо за ответы.

Еще хотел бы уточнить. Откуда в файле Create_ANN_step_0 из приведенной модели в одной из статей берется функция mk_data? Это же не встроенная функция матлаб.

Цитата: Откуда в файле Create
Quote:
Откуда в файле Create_ANN_step_0 из приведенной модели в одной из статей берется функция mk_data?

Если вы внимательно посмотрите, то увидите, что весь архив Example_0_Hajkins.rar — это просто пример из книги, где я ничего не делала, а просто взяла его за основу, чтобы создать Example_1_Forecast.rar. Так вот в этом архиве Хайкина есть файл mk_data.m, который и реализует эту функцию. В МАТЛАБе все функции находятся в отдельных файлах с расширением *.m.

----------------------
Ирина Чучуева,
команда Математического бюро

Спасибо,не заметил сначала(

Спасибо,не заметил сначала(

Добрый вечер. Сегодня получил

Добрый вечер. Сегодня получил задание на работу. В общем имеется очень большая выборка. 10000 значений. В общем случае я должен разделить ее на 2 части, по одной тренировать сеть, а по другой уже тестировать работу сети и оценивать ошибку работы. Так?
И еще вопрос-вчера попробовал создать нейросеть для прогнозирования нестационарного сигнала. Как я сделал-часть сигнала сделал обучающей выборкой, а потом этот же сигнал+его продолжение протестировал на созданной сети. Потом посчитал ошибку и что-то получил. Правильно я сделал или нет?

Добрый день!

Добрый день!

1. Да, именно так: на одном участке подгоняем модель, на другом тестируем.

2. Я не очень понимаю, что такое "сигнал + его продолжение". Вы когда посчитали, то смотрите глазами на графики: похож ваш прогноз на факт или нет? Если похож, то вы двигаетесь в верном направлении. В идеале он должен четко "повторять" факт, как на графике.

----------------------
Ирина Чучуева,
команда Математического бюро

Ну то есть я взял сам сигнал

Ну то есть я взял сам сигнал,на котором тренировалась сеть,плюс его продолжение,то есть несколько значений вперед,и дал это все функции прогноза в программе. Вот так. Это правильно или нет?

Добрый день!

Добрый день!

Поняла, что вы имели в виду. Насколько я понимаю, так и нужно делать.

----------------------
Ирина Чучуева,
команда Математического бюро

Добрый день? Хотел уточнить

Добрый день? Хотел уточнить-работали ли Вы со стандартными функциями создания,тренировки и моделирования НС в МАТЛАБ? Просто в процесе "разбирания с НС" возникает много вопрос по их моделированию.

Цитата:работали ли Вы со
Quote:
работали ли Вы со стандартными функциями создания,тренировки и моделирования НС в МАТЛАБ?

Нет, не работала. Я нейронными сетями занялась относительно недавно, отталкивалась от простых алгоритмов Хайкина. Что касается функций типа
net = newff(minmax(P),[21,15,3],{'logsig' 'logsig' 'purelin'},'trainlm');, то я ими не пользуюсь. Я вообще встроенными функциями не очень люблю пользоваться.

----------------------
Ирина Чучуева,
команда Математического бюро

Добрый вечер. Обращаюсь к Вам

Добрый вечер. Обращаюсь к Вам за помощью потому что либо я что-то недопонимаю в ИНС, либо мне преподаватель не так объясняет. В общем как раньше я писал, я получил 2 модели. Одна из них, это использование NAR и NARX моделей динамического прогнозирования для прогнозирования величины (скорости ветра) по его прошлым значениям (NAR) или же с учетом внешних факторов (NARX). Разобрался в этом всем, а именно как это сделать кодом в МАТЛАБ. Затем мне преподаватель говорит, что это не совсем точная модель (не спорю, ошибка большая так как мы прогнозируем неизвестные значения временного ряда) и надо использовать вторую. Вторая модель строится на простой многослойной сети (2-3 скрытых слоя), которая имеет как input данные от 1 до n-1 и как target от 2 до n. И вот здесь возникает мой вопрос. При прогнозировании с помошью этой модели студент, который ее разработал, как я понимаю подавал на вход сети часть данных, которые использовались в векторе input. Как я понимаю в результате мы получим не прогноз (а именно как в NAR и NARX моделях следующие значения временного ряда), а простую аппроксимацию того, что подаем на вход сети.

Либо я что-то недопонимаю, либо же это не есть прогнозирование. Так как в моем понимании прогнозирование это как раз то, что осуществляется в NAR и NARX моделях.

Заранее спасибо за ответ.

Добрый день!

Добрый день!

Quote:

Вторая модель строится на простой многослойной сети (2-3 скрытых слоя), которая имеет как input данные от 1 до n-1 и как target от 2 до n. И вот здесь возникает мой вопрос. При прогнозировании с помощью этой модели студент, который ее разработал, как я понимаю подавал на вход сети часть данных, которые использовались в векторе input. Как я понимаю в результате мы получим не прогноз (а именно как в NAR и NARX моделях следующие значения временного ряда), а простую аппроксимацию того, что подаем на вход сети.

Вторая модель, например, n = 10, тогда на вход сети подаются значения для t=1...9, а на выходе мы имеем значения для t = 2...10. Не совсем понятна такая конструкция: зачем аппроксимировать, например, значение для t=2, когда оно у нас есть фактическое? При такой архитектуре мы прогнозируем только одно значение для t=10, потому что на входе его нет.

Quote:
NAR и NARX

Расшифруйте, пожалуйста, вот эти сокращения. Понятно, что X = extended, это стандартно, а что такое NAR? Пока я не могу вам сказать, что делает NAR и NARX, пока не пойму, что имеется в виду.

Вообще прогнозирование и есть вычисление "неизвестных значения временного ряда" для будущих отметок времени. В случае второй модели, только значение для t=10 является неизвестным, так что оно прогнозируется.

Quote:
Если же использовать последнюю модель, что описана в прошлом сообщении, то как все таки получить заветные следующие неизвестные значения временного ряда?

Сделайте сеть такой, чтобы на вход подавались значения для отметок времени t=1...n-1, а target (выход) сделайте jlybv значением для t=10.

----------------------
Ирина Чучуева,
команда Математического бюро

Вот сразу еще вопрос. Если же

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

Разобрался наконец-то со

Разобрался наконец-то со второй моделью и понял в чем смысл работы. В ней как input данные от 1 до n-1 и как target от 2 до n. И потом уже для прогнозированния мы подаем значение n как вход и получаем n+1 на выходе. То есть если будет, например, длинна прогнозирования 10, а входных данных 100, то на вход мы подадим от 1 до 90, на выход от 11 до 100 при тренировки. А потом для прогнозированния как входи от 91 до 100 и на выходе получим от 100 до 110.

The nonlinear autoregressive network with exogenous inputs (NARX) is a recurrent dynamic network, with feedback connections enclosing several layers of the network. В этой моделе мы можем с помощью элементов задержек на входе сети и на ее выходе запомнить значения при тренировке, а потом замкнуть обратную связь в сети и получить прогноз по последним данным входа и выхода. 

NAR (nonlinear autoregressive) neural networks can be trained to predict a time series from that series past values. В этой моделе мы можем с помощью элементов задержек только на входе сети запомнить входные значения входной величины и потом подать эти значение для прогнозирования и получить следующие значение ряда.

Вопрос-чем отличается смысл NAR от работы сети, которая описывалась в начале. По сути ничем? так?

Спасибо заранее за ответ.

Добрый день! Поздравляю со

Добрый день! Поздравляю со всеми праздниками, я снова в строю.

Quote:
Вопрос-чем отличается смысл NAR от работы сети, которая описывалась в начале. По сути ничем? так?

Я думаю, вы правы — ничем не отличается NAR от сети ANN, о которой речь уже шла. Дело в том, что тут не совсем корректно использовать понятие авторегрессии, все же авторегрессия определена в виде линейного уравнения — модель авторегрессии в Википедии, а они это понятие за уши притягивают к нейронной сети, просто говоря о том, что будущее значение временного ряда (выход) зависит от предыдущих значений того же ряда (входа).

С математической точки зрения такое применение термина не совсем корректно, но с терминологией много где есть проблемы, тема прогнозирования такая не единственная.

----------------------
Ирина Чучуева,
команда Математического бюро

Добрый вечер. Спасибо за

Добрый вечер. Спасибо за ответ.

Теперь хочу рассказать, что создано мною две модели прогнозирования ветра с учетом других погодных условий на данный момент. Одна модель прогнозирует на час вперед (двенадцать 5-ти минутных значений), другая на день (96 15-ти минутных значений). В первом случае на основе тестирования 102 НС МАРЕ ошибка минимум была 6 % (при использовании алгоритма trainlm), во втором случае также на основе тестирования 102 НС МАРЕ ошибка минимум была 28 % (при использовании алгоритма trainrp).

Читал в книге Ежова по использованию НС в экономике, что для повышения точности прогноза НС можно объединять в "комитеты сетей". Я также читал в одной из Ваших статей на сайте. Как в моем случае (102 результата) создать этот комитет?

Снова здравствуйте! Давайте

Снова здравствуйте! Давайте прежде разберемся, о чем речь, а уже после попробуем понять, как ошибку снизить.

Quote:
В первом случае на основе тестирования 102 НС МАРЕ ошибка минимум была 6 % (при использовании алгоритма trainlm), во втором случае также на основе тестирования 102 НС МАРЕ ошибка минимум была 28 % (при использовании алгоритма trainrp).

Поздравляю, дело серьезно сдвинулось! У меня уточнения: что такое 102 НС? Что такое MAPE я знаю :-)

Quote:
Читал в книге Ежова по использованию НС в экономике, что для повышения точности прогноза НС можно объединять в "комитеты сетей". Я также читал в одной из Ваших статей на сайте.

Что такое комитеты сетей? Про комитеты у меня точно не написано, так как я об этом ничего не знаю.

----------------------
Ирина Чучуева,
команда Математического бюро

Добрый день, спасибо за ответ

Добрый день, спасибо за ответ.

Извините, не комитеты нейронных сетей, а консенсус-прогноз из вот этой статьи http://www.mbureau.ru/blog/dva-sposoba-povysit-tochnost-prognoza. Просто в названной книге это называется так.

Как я понимаю, что суть этого метода заключается в том, чтобы как бы объединить результаты прогноза от разных экспертов (в частном случае от разных типов или архитектур нейронных сетей) при прогнозе по одним и тем же входным данным и по выходным данным. То есть по определенной функции результаты работы нескольких моделей обобщаются и выводится более точный прогноз.

102 НС - это 102 нейронные сети разной архитектуры (кол-во слоев и нейронов в них), которые обучаются по одним и тем же данным и прогнозируют одну и ту же величину. Разница лишь в архитектуре.

И еще у меня вопрос-очень часто при прогнозировании получается MAPE в пределах от 6 до 15 процентов, то есть по идеи прогноз более или менее точно должен повторять реальную величину, однако при построении графиков оказывается, что спрогнозированная величина просто либо находится в пределах изменения реальной величины, либо же имеет свою какую-то функцию, которая и вовсе не повторяет формы реальной величины. Поэтому хочу узнать у Вас, в общем случае в  прогнозировании важна сама приближенность сигналов реального и спрогнозированного, или же более оценивается именно ошибка MAPE или другая как показатель прогноза.

Для понимания моих последних слов прикрепляю график, на котором красной линией обозначена ожидаемая реальная величина, а синей линией-спрогнозированная (в данном случае MAPE =10,72 %).

Цитата:в частном случае от
Quote:
в частном случае от разных типов или архитектур нейронных сетей

Моя идея принципиально отличается от вами указанной. Моя идея состоит в том, чтобы формировать (считать) консенсус-прогноз на основании нескольких независимых прогнозов. Это как раз означает, на основании прогнозов нескольких принципиально разных моделей, например, ANN и ARIMAX. В этом и состоит его сложность!

Разобравшись в ANN, сделав одну суть, вы понимаете, как сделать сеть, но другую, а потом основании исходной и другой слепить консенсус-прогноз. Но самая-то выгода будет именно тогда, когда вы разберетесь в новой модели (альтернативной), научитесь ей активно пользоваться и будете уже на этом новом уровне формировать консенсус-прогноз. Делать это внутри одной модели (как у вас и указано: разные сети, но все равно сети) по моему опыту менее эффективно, чем брать независимые модели. У меня на создание своей системы, внутри которой я строю консенсус-прогноз, ушли годы — это долго.

Quote:
Поэтому хочу узнать у Вас, в общем случае в прогнозировании важна сама приближенность сигналов реального и спрогнозированного, или же более оценивается именно ошибка MAPE или другая как показатель прогноза.

Отличный вопрос! Тут важно то, как используется прогноз скорости ветра. В любом случае прогноз той или иной величины используется в последующей задаче, например, при планировании. Какая ошибка прогноза допустила, как ее считать определять (на глаз по форме кривой, в MAE, MAPE или иным показателем) — ответы на все эти вопросы лежат именно в той задаче, которая решается на основании вашего прогноза. Уточните, кому и зачем нужен прогноз? Ведь не вы первый прогнозируете скорость ветра — посмотрите статьи на эту тему. Как оценивали точность, почему именно так — не поленитесь глянуть, иначе потеряете время на изобретение велосипеда.

Quote:
по идеи прогноз более или менее точно должен повторять реальную величину, однако при построении графиков оказывается, что спрогнозированная величина просто либо находится в пределах изменения реальной величины

У меня есть материал Что влияет на точность прогнозирования временного ряда? — посмотрите туда, там я постаралась популярно пояснить, отчего зависит ошибка и что на нее влияет.

----------------------
Ирина Чучуева,
команда Математического бюро

Да,спасибо за ответ. Пока это

Да,спасибо за ответ. Пока это исчерпывающе. Будут вопросы, обращусь еще.

Все, вчера защитил на

Все, вчера защитил на отличной свой курсовой. Спасибо Вам за небольшие консультации!)

Здорово! Я вас поздравляю!!!

Здорово! Я вас поздравляю!!!

----------------------
Ирина Чучуева,
команда Математического бюро

2010 - 2018 © Математическое бюро

Все права защищены в соответствии с законодательством РФ

При полном или частичном использовании материалов ссылка на сайт обязательна