как оптимизировать половину определенной функции потерь - PullRequest
0 голосов
/ 13 марта 2020

Я пытаюсь оптимизировать свой код в последнее время, и у меня есть одна проблема:

  • Я определил функцию потерь, но для ее вычисления необходимо использовать другие пакеты для получения компонентов. в функции потерь;

  • Я не могу записать выражение этих компонентов явно;

  • Я проверил некоторые пакеты оптимизации, такие как blackbox, dfoptim et c ... но не удалось найти один доступный;

Ранее я использовал grid search (for циклы) для вычисления good оценки, но это занимает слишком много времени.

Это моя функция LOSS:

LOSS <- function(sigma) {
  x11 <- seas(data, x11='')
  ssm <- SSModel(data ~ SSMtrend(1, Q=list(sigma[2])) + SSMseasonal(12, sea.type = 'dummy', Q=1), H=sigma[1])
  kfs <- KFS(ssm)

  seasonal_x11 <- series(x11, "d10")
  trend_x11 <- series(x11, "d12")

  seasonal_kfs <- signal(kfs, "seasonal")$signal
  trend_kfs <- signal(kfs, "trend")$signal

  l <- sum((seasonal_x11-seasonal_kfs)^2) + sum((trend_x11-trend_kfs)^2) + sum((diff(trend_x11)-diff(trend_kfs))^2)
  return(l)
}

Таким образом, пакеты seasonal и KFAS используются здесь и предполагают, что данные даны , sigma - это вектор оценки, который нас интересует.

Я потратил на это много времени и надеюсь, что кто-нибудь мне поможет:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...