Количество скрытых узлов, выбранных функцией mlp
, зависит от значения параметра hd.auto.type
:
- «set» fixes hd = 5.
- «Действительный» использует 20% проверочный набор (случайным образом), отобранный для поиска наилучшего числа скрытых узлов.
- «cv» использует 5-кратную перекрестную проверку.
- «elm» использует ELM для оценки количества скрытых узлов (экспериментально).
Количество скрытых узлов, которые пробовали для значений параметров «valid», «cv» и «elm», варьируется от 1до max(2, min(dim(X)[2] + 2, length(Y) - 2))
.Эти скрытые узлы ограничены одним слоем.
Подходы "cv" и "valid" используют минимум среднеквадратичной ошибки для определения количества скрытых узлов.
Насколько я могу судить по функции auto.hd.elm
в исходный код , подход «вяз» использует медианное значение числа значимых коэффициентов модели для выбора количества скрытых узлов.Надеюсь, что это имеет смысл для вас!
Функция elm
использует min(100 - 60*(type=="step" | type=="lm"),max(4, length(Y) - 2 - as.numeric(direct)*length(X[1,])))
для определения количества скрытых узлов.Где type
- это оценка, используемая для весов выходного слоя, а direct
- наличие прямых соединений ввода-вывода.
Количество узлов ввода зависит от сезонности и задержек.
Ошибка обобщения можетбыть аппроксимированы с использованием перекрестной проверки.Чтобы было ясно, эта перекрестная проверка должна выполняться отдельно от любой проверки, используемой для определения количества скрытых узлов.
У автора пакета nnfor есть вступительное сообщение в блоге, которое, возможно, стоит проверить: http://kourentzes.com/forecasting/2017/02/10/forecasting-time-series-with-neural-networks-in-r/