시계열 예측
시계열 예측 (Time-Series Forecasting) (Time-Series Forecasting (Snowflake ML Functions))
이 문서는 Snowflake ML 함수의 시계열 예측(Timeseries Forecasting) 기능을 설명해요.
본문
개요
시계열 예측은 과거 데이터를 기반으로 미래 값을 예측하는 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
)
);