본문으로 건너뛰기
버전: docs v25.02

Forecasting (FCST)

Updated 2024.05.17

What is Forecasting?

Forecasting은 시계열 데이터를 분석하여 미래의 값을 예측하는 AI 컨텐츠입니다. 이 기술은 다양한 예측 모델을 통해 과거 데이터의 패턴을 학습하고, 이를 바탕으로 미래의 트렌드와 값을 예측하는 데 사용됩니다. 사용자가 데이터의 흐름을 이해하고, 향후 발생할 변동을 예측함으로써 더 나은 의사 결정을 내릴 수 있도록 도움을 줍니다.



When to use Forecasting?

Forecasting AI 컨텐츠는 영업, SCM(공급망 관리), 구매, 그리고 마케팅 분야에서 적용할 수 있는 효과적인 도구입니다. 다음은 각 분야에서의 활용 사례를 소개합니다.

  • 영업 (Sales): 상품의 수요를 예측하여 재고관리와 매출 최적화에 도움이 됩니다. 또한 고객의 구매 패턴을 분석하여 개별 고객에게 맞춤형 서비스를 제공할 수 있습니다.
  • SCM (Supply Chain Management): 수요 예측을 통해 재고를 효과적으로 관리하여 비용을 절감하고 생산성을 향상시킵니다. 예측 모델을 활용하면 공급망 리스크를 식별하고 대응할 수 있습니다.
  • 구매 (Procurement): 공급자의 공급 능력을 예측하여 효과적인 구매 계획을 수립합니다. 또한 원자재나 부품의 가격 변동을 예측하면 구매 비용을 최적화하는데 활용할 수 있습니다.
  • 마케팅 (Marketing): 소비자의 구매 행동 및 선호도를 예측하여 타겟 마케팅을 활용하거나 광고 효과를 예측하고 광고 예산을 최적화하여 마케팅 ROI를 향상시킬 수 있습니다.


Key Features

Forecasting은 뛰어난 성능과 높은 효율성을 자랑하는 AI 컨텐츠입니다. 이는 큰 학습 리소스를 필요로 하지 않으면서도 우수한 성능을 발휘합니다. 또한, 대부분의 데이터 전처리와 예측 과정이 자동화되어 있어, 시계열 데이터 분석 지식이 부족한 사용자들도 우수한 예측 모델을 쉽고 빠르게 적용하고 서비스화할 수 있습니다.  

전처리 및 모델링 자동화

Forecasting은 시계열 데이터 분석을 위해 필요한 복잡한 전처리 작업을 간편하게 처리합니다. 시간 데이터형 변환, 시간 별 중복값 처리, 결손치 처리 등과 같은 전처리 작업을 선택적으로 적용하여 시계열 모델에 적합한 데이터를 손쉽게 준비할 수 있습니다. 이를 통해 사용자는 데이터 전처리 코드 개발에 소요되는 시간과 노력을 최소화하고, 보다 빠르고 효율적으로 예측 모델을 구축할 수 있습니다.

손쉬운 분석 리포트

Forecasting은 AIOps pipeline에 따라 자동화된 학습/추론 결과에 대한 상호작용 가능한 리포트를 얻을 수 있습니다. 리포트를 기반으로 손쉽게 데이터 탐색을 수행하여 빠르게 데이터 이상 여부와 예측 결과를 확인할 수 있습니다.

빠른 속도와 낮은 메모리 요구

Forecasting은 코드 최적화를 통해 효율적인 AI 모델 운영을 실현하며, 우수한 정확도를 보유한 모델을 제공하며 빠른 속도와 낮은 메모리 요구를 보장합니다.

다양한 모델 제공(TBD)

Forecasting은 다양한 모델을 제공하는 Darts 기반으로 개발되었습니다. 현재는 Nbeats 모델을 사용할 수 있으며, 주기적인 업데이트를 통해 신규 모델이 추가될 예정입니다. 이를 통해 사용자들은 최신 기술을 활용하여 시계열 데이터를 예측하는 데 더욱 강력한 도구를 활용할 수 있습니다. darts나 NBeats에 대해서 알지 못하더라도 모델 선택만 하면 바로 사용할 수 있습니다.



Quick Start

설치하기

데이터 준비

  • 학습에 사용 할 train data 파일과 추론에 사용 할 test data 파일을 준비하세요(추론을 진행하지 않은 경우 test data 파일은 준비하지 않아도 됩니다.)

  • data 파일은 모두 yaml 파일에서 주어진 Column 정보(y_column, time_column, groupkey_column, x_covariates, static_covariates)로 구성되어 있어야 하며 현재 csv 확장자만 지원합니다. 자세히보기: Forecasting 데이터 구조

  • data 파일의 time_column은 모두 yaml 파일에서 주어진 동일한 time_format을 가져야 합니다.(2023-03-01 -> %Y-%m-%d)

  • time_column과 groupkey_column에는 결측치가 있으면 안됩니다.

    univariable/univariate 예시 파일(time_column: day, y_column: average temperature인 경우)

    dayaverage temperature
    2024-03-015
    2024-03-026
    ......

    multivariable/univariate 예시 파일(time_column: day, y_column: average temperature, x_covariates: [minimum temperature, maximum temperature]인 경우)

    dayminimum temperaturemaximum temperatureaverage temperature
    2024-03-01-185
    2024-03-02096
    ............

필수 parameter 설정

  1. forecasting/experimental_plan.yaml 내 하기 데이터 경로를 테스트하고자 하는 파일 경로로 수정해주세요. 학습만 진행할 경우 load_train_inference_data_path는 수정하지 않아도 됩니다.
    external_path:
    - load_train_data_path: ./sample_data/train_input_path/

       - load_inference_data_path: ./sample_data/inference_input_path/


2. `train_pipeline`의 `readiness asset`에 필수 항목을 데이터에 맞게 수정해주세요. 하기 설정값은 학습/추론을 위해 반드시 작성/변경해야하는 항목입니다. `sample_frequency`의 경우 실제 데이터가 축적된 빈도로 작성해주세요. 현재 년, 달, 주, 일, 시간, 분, 초 단위만 지원됩니다. 만약 데이터가 상호명이나 지역명 등 개별 그룹으로 구성되는 경우 `groupkey_column`에 해당 그룹을 구분하는 항목명을 작성하면 그룹을 구분하여 학습할 수 있습니다. 예측값에 영향을 주는 항목이 있는 경우 시간이 따라 변화하면, `x_covariates`에, 변화하지 않으면 `static_covariates`에 입력해주세요.
```bash
- step: readiness
args:
- y_column: target # (str), 예측하고자 하는 항목명
time_column: log_date # (str), 시간을 기록한 항목명
time_format: "%Y-%m-%d" # (str), 시간 데이터 format
sample_frequency: daily # (str), 예측 빈도(yearly, monthly, weekly, daily, hourly, minutely, secondly)
input_chunk_length: 6 # (int), 학습길이(데이터 포인트 수)
forecast_periods: 3 # (int), 예측길이(데이터 포인트 수)
## 아래는 존재하는 경우에만 추가해주세요.
groupkey_column: shop_name # (str), 그룹 항목명 
     x_covariates: [] # (list), 시간에 따라 변동하는 독립변수
static_covariates: [] # (list), 시간에 따라 변하지 않고 그룹에 종속된 변수
  1. train_pipelinetrain asset에 필수 항목을 데이터에 맞게 수정해주세요. 하기 설정값은 학습/추론을 위해 반드시 작성/변경해야하는 항목입니다.

        - step: train
    args:
    - forecaster_name: nbeats # (str), 사용하고자 하는 모델
  2. 이 외에도 Optional 파라미터 설정을 원하는 경우 우측 페이지를 참고해주세요. 자세히보기: Forecasting Parameter

실행하기

  • terminal 혹은 jupyter notebook에서 실행하면 됩니다. 자세히 보기: Develop AI Solution
  • 실행 결과는 학습 완료된 모델파일과 예측 결과, 성능표가 저장됩니다.  

Topics



Forcasting Version: 2.1.0, ALO Version: 2.3.1