시계열 예측

시계열 예측 (Time-Series Forecasting) (Time-Series Forecasting (Snowflake ML Functions))

이 문서는 Snowflake ML 함수의 시계열 예측(Timeseries Forecasting) 기능을 설명해요.

출처: Time-Series Forecasting (Snowflake ML Functions)

본문

개요

시계열 예측은 과거 데이터를 기반으로 미래 값을 예측하는 ML 함수예요. Snowflake의 FORECAST 함수는 별도의 ML 인프라 없이 SQL로 직접 시계열 예측을 수행할 수 있게 해줘요. 판매량, 재고, 수요, 리소스 사용량 등 시간에 따라 변하는 지표의 미래 값을 예측하는 데 유용해요.

FORECAST 함수 소개

FORECAST는 시계열 데이터를 학습해 미래 값을 예측해요. 기본 구조:

SELECT FORECAST(
  over (ORDER BY ts),
  input_data => TABLE(mytable),
  timestamp_col => 'ts',
  target_col => 'value',
  horizon => 30
);
  • over (ORDER BY ...): 예측할 시계열의 정렬.
  • input_data: 학습 데이터.
  • timestamp_col: 타임스탬프 컬럼.
  • target_col: 예측할 대상(목표) 컬럼.
  • horizon: 미래 몇 개의 시점을 예측할지.

예측 결과

예측 함수는 예측값과 함께 다음 정보를 반환할 수 있어요:

  • FORECAST: 예측된 값.
  • LOWER_BOUND / UPPER_BOUND: 예측 신뢰 구간.
  • CONFIDENCE_LEVEL: 신뢰 수준.

그룹별 예측 (grouping_cols)

여러 시계열을 동시에 예측하려면 grouping_cols에 그룹화 컬럼을 지정해요. 예를 들어 제품별, 지역별로 예측할 수 있어요:

SELECT FORECAST(
  over (partition by product ORDER BY ts),
  input_data => TABLE(sales),
  timestamp_col => 'ts',
  target_col => 'amount',
  grouping_cols => ['product'],
  horizon => 7
);

전처리와 매개변수

예측 함수는 실제 세계 데이터를 처리하기 위한 매개변수를 지원해요:

  • missing_data_behavior: 결측값 처리 방식. FILL_FORWARD(앞선 값으로 대체)를 지정할 수 있어요.
  • ignore_fluctuations: 외래값(이상치) 처리. FALSE로 설정하면 외래값을 처리해요.

자세한 내용은 시계열 예측에서 실제 세계 데이터 다루기를 참고하세요.

학습과 추론

FORECAST는 학습과 추론을 SQL로 직접 처리하며, 내부적으로 모델을 학습한 뒤 예측을 생성해요. 학습 데이터가 충분할수록 예측 정확도가 높아져요.

고려 사항

  • 예측 품질은 데이터의 양과 특성에 따라 달라져요. 계절성, 추세가 있는 데이터에서 더 잘 동작해요.
  • 예측은 과거 패턴이 미래에도 이어진다는 가정에 기반해요.
  • 신뢰 구간은 예측의 불확실성을 나타내요.

예시

일일 판매량 데이터로 30일 미래 판매량을 예측하는 쿼리:

SELECT ts, forecast, lower_bound, upper_bound
FROM TABLE(
  FORECAST(
    over (ORDER BY ts),
    input_data => TABLE(daily_sales),
    timestamp_col => 'ts',
    target_col => 'units_sold',
    horizon => 30
  )
);

더 알아보기 (Learn more)