Forecasting (FCST)
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
설치하기
- ALO를 설치해주세요. 자세히 보기: Start ALO
- Contents 다운로드 시 git url: https://github.com/mellerikat-aicontents/Forecasting.git
- 설치 코드:
git clone https://github.com/mellerikat-aicontents/Forecasting.git solution(ALO 설치 폴더 내에서 실행)
데이터 준비
-
학습에 사용 할 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인 경우)
day average temperature 2024-03-01 5 2024-03-02 6 ... ... multivariable/univariate 예시 파일(time_column: day, y_column: average temperature, x_covariates: [minimum temperature, maximum temperature]인 경우)
day minimum temperature maximum temperature average temperature 2024-03-01 -1 8 5 2024-03-02 0 9 6 ... ... ... ...
필수 parameter 설정
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), 시간에 따라 변하지 않고 그룹에 종속된 변수
-
train_pipeline의train asset에 필수 항목을 데이터에 맞게 수정해주세요. 하기 설정값은 학습/추론을 위해 반드시 작성/변경해야하는 항목입니다.- step: train
args:
- forecaster_name: nbeats # (str), 사용하고자 하는 모델 -
이 외에도 Optional 파라미터 설정을 원하는 경우 우측 페이지를 참고해주세요. 자세히보기: Forecasting Parameter
실행하기
- terminal 혹은 jupyter notebook에서 실행하면 됩니다. 자세히 보기: Develop AI Solution
- 실행 결과는 학습 완료된 모델파일과 예측 결과, 성능표가 저장됩니다.
Topics
Forcasting Version: 2.1.0, ALO Version: 2.3.1