시계열 예측에 신경망을 적용하는 방법은 무엇입니까?


83

저는 기계 학습에 익숙하지 않고 신경망을 시계열 예측에 적용하는 방법을 알아 내려고 노력했습니다. 쿼리와 관련된 리소스를 찾았지만 여전히 약간 손실 된 것 같습니다. 너무 자세하지 않은 기본적인 설명이 도움이 될 것이라고 생각합니다.

몇 년에 걸쳐 매월 가격 값이 있고 새로운 가격 값을 예측하고 싶다고 가정 해 봅시다. 지난 몇 달 동안 가격 목록을 얻은 다음 K-Nearest-Neighbor를 사용하여 과거에 비슷한 추세를 찾으려고 노력했습니다. 나는 그들이 새로운 가격을 시도하고 예측하기 위해 변화율이나 과거 경향의 다른 속성을 사용할 수 있습니다. 이 같은 문제에 신경망을 적용 할 수있는 방법은 제가 찾은 것입니다.



1
스레드에서 신경망 과 베이어의 사전을 사용한 예측 시계열 분석에 반복 신경망을 사용하는 올바른 방법은 나의 이해를 향상시키는 데 도움이되었습니다.
solartic

@solartic, 궁금해서이 방법을 성공적으로 구현 했습니까?
처진 매너 티와 백조 민속

답변:


102

다음은 코드 작성 및 아이디어 테스트를 시작하는 데 도움이되는 간단한 레시피입니다.

몇 년 동안 월간 데이터가 기록되어 36 개의 값이 있다고 가정합니다. 또한 한 달 (값) 만 미리 예측하는 것에 관심이 있다고 가정합시다.

  1. 탐색 적 데이터 분석 : 전통적인 시계열 분석 방법 중 일부를 적용하여 데이터의 지연 종속성을 추정합니다 (예 : 자동 상관 및 부분 자동 상관 플롯, 변환, 차이). 주어진 월의 가치가 지난 3 개월의 데이터와 상관 관계가 있지만 그 이상의 가치는 없다고 가정 해 봅시다.
  2. 데이터를 학습 및 검증 세트로 분할 : 첫 24 점을 학습 값으로, 나머지 포인트를 검증 세트로 사용하십시오.
  3. 신경망 레이아웃 생성 : 지난 3 개월의 값을 입력으로 사용하고 다음 달의 값을 예측하려고합니다. 따라서 세 개의 노드를 포함하는 입력 레이어와 하나의 노드를 포함하는 출력 레이어를 가진 신경망이 필요합니다. 최소한 두 개의 노드가있는 숨겨진 레이어가 있어야합니다. 불행히도 숨겨진 레이어 수와 해당 노드 수를 선택하는 것은 명확한 지침이 아닙니다. 3 : 2 : 1처럼 작게 시작합니다.
  4. x1,x2,x24
    pattern1:x1,x2,x3,x4
    pattern2:x2,x3,x4,x5
    pattern21:x21,x22,x23,x24
  5. 이러한 패턴으로 신경망 훈련
  6. 유효성 검사 세트에서 네트워크 테스트 (25-36 개월) : 여기서 신경망이 입력 레이어에 필요한 세 가지 값을 전달하고 출력 노드가 무엇을 설정하는지 확인합니다. 따라서 훈련 된 신경망이 32 개월의 가치를 얼마나 잘 예측할 수 있는지 보려면 29, 30 및 31 개월의 값으로 전달합니다.

이 레시피는 분명히 높은 수준이며 컨텍스트를 다른 소프트웨어 라이브러리 / 프로그램에 매핑하려고 할 때 처음에 머리를 긁을 수 있습니다. 그러나 이것이 주요 요점을 설명하기를 바랍니다. 예측하려는 시리즈의 상관 관계 구조를 합리적으로 포함하는 훈련 패턴을 만들어야합니다. 신경망 또는 ARIMA 모델로 예측을 수행하든, 해당 구조가 무엇인지 결정하기위한 탐색 작업은 종종 가장 시간이 많이 걸리고 어려운 부분입니다.

내 경험상 신경망은 훌륭한 분류 및 예측 기능을 제공 할 수 있지만 설정하는 데 시간이 오래 걸릴 수 있습니다. 위의 예에서 21 가지 훈련 패턴으로는 충분하지 않습니다. 다른 입력 데이터 변환은 더 나은 / 나쁜 예측으로 이어집니다. 숨겨진 레이어 및 숨겨진 레이어 노드의 수를 변경하면 예측에 큰 영향을 미칩니다. 기타

신경망 예측 경쟁에 대한 수많은 정보가 포함 된 neural_forecasting 웹 사이트를 보는 것이 좋습니다 . 동기 부여의 페이지에 특히 유용합니다.


12
이 답변에 +1하지만 가장 최근 3 개월이 답변과 관련이있는 유일한 달인 경우에도 지난 5 년 동안 같은 달에 같은 입력이 유용한 입력이 될 수 있다고 덧붙였습니다 ( 예를 들어 12 월이 이전 12 월과 같은 경향이있는 경우).
rossdavidh

1
좋은 대답입니다. 나는 이것이 매우 도움이된다는 것을 알았다. 높은 수준의 설명은 내가 원하는 것입니다. @rossdavidh : 좋은 점 +1.
solartic

2
여기에 예제 코드를 얻는 것이 좋습니다.
Léo Léopold Hertz 준영

1
흥미로운 것은 회귀 변수와 함께 다변량 시계열 데이터 세트가 될 것입니다.
Tommaso Guerrini

1
실제 데이터에 대한 응용 프로그램과 "전통적인"시계열 방법과 비교 한 논문이 있습니까?
마르코 푸마 갈리
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.