본문 바로가기

전체 글111

자산 포트폴리오의 구성 보호되어 있는 글 입니다. 2024. 7. 12.
6. 시계열 데이터 클러스터링 (DTW, TimeSeriesKMeans) 시계열 클러스터링은 시간에 따른 데이터의 패턴을 기반으로 여러 시계열 데이터를 그룹화한다. 각 시계열은 유사한 패턴, 트렌드, 계절성 등을 기준으로 클러스터에 속하게 되는데, 이를 통해 데이터의 구조를 이해하고, 예측 모델의 성능을 향상할 수 있습니다. 우리가 클러스터링을 할 때는 주로 거리나 밀도를 기반으로 유사도(similarity)를 측정하게 되는데, 시계열 데이터의 경우 주로 동적 시간 왜곡(DTW : Dinamic Time Warping)이라는 거리 측정 방법을 사용한다.  DTW는 아래의 그림과 같이 시계열 데이터간의 길이나 크기가 달라도 이것을 고려하여 유사성을 측정하는 방법이다. 두 시계열의 각 지점 간의 유클리디언 거리를 기반으로 거리 행렬을 만들고, 최적 경로 (최소 누적거리)를 찾는 .. 2024. 7. 9.
5. Seq2Seq 모델을 이용한 다변량 다중시점 시계열 예측 다변량 시계열 예측을 할 때 시퀀스 투 시퀀스(sequence to sequence, seq2seq) 형태를 사용하면 더 정교한 시계열 예측이 가능해진다. Seq2 Seq 모델은 주로 두 개의 LSTM으로 구성되며, 첫 번째 LSTM(인코더)은 입력 시퀀스를 고정 길이의 콘텍스트 벡터로 인코딩하고, 두 번째 LSTM(디코더)은 이 벡터를 기반으로 출력 시퀀스를 생성한다. 이는 주로 번역, 대화 생성 및 시계열 예측에 사용된다.  Seq2 Seq을 이용한 다중시점 시계열 예측의 가장 큰 장점은, known future input 값을 사용할 수 있다는 점이다. Seq2 Seq의 Encoder 가 과거의 정보를 받아서 콘텍스트 벡터로 인코딩을 하고, Decoder는 인코딩 된 콘텍스트 벡터에 known fu.. 2024. 7. 8.
4. Prophet 패키지를 이용한 간단 시계열 예측 Prophet는 Facebook에서 개발한 오픈 소스 시계열 데이터 예측 도구이다. 비정상적이고 결측치가 있는 데이터에 강하며, 주기적 패턴과 추세를 감지하는 데 효과적이다. Python과 R에서 사용할 수 있으며, 가장 큰 장점은 사용하기가 매우 쉽다.  머신러닝, 딥러닝과 같은 인공지능 모델보다는 ARIMA와 같은 확률적 모형에 가깝다고 할 수 있고, 다만 ARIMA 보다는 좀 더 도메인 지식(가정) 을 모델에 유연하게 입힐 수 있다.  Prophet 모델의 생성과 학습은 아래 코드 3줄이 전부다. 주의할 점은, Prophet의 입력 데이터는 칼럼명을 ds (= 날짜), y (= 값)으로 설정해줘야 한다. Prophet 에는 사용가능한 다양한 옵션들이 있는데, 이들 각각에 대해서는 나중에 정리하겠다... 2024. 7. 8.