FCST Parameter
experimental_plan.yaml 설명
내가 갖고 있는 데이터에 AI Contents를 적용하려면 데이터에 대한 정보와 사용할 Contents 기능들을 experimental_plan.yaml 파일에 기입해야 합니다. AI Contents를 solution 폴더에 설치하면 solution 폴더 아래에 contents 마다 기본으로 작성되어있는 experimental_plan.yaml 파일을 확인할 수 있습니다. 이 yaml 파일에 '데이터 정보'를 입력하고 asset마다 제공하는 'user arugments'를 수정/추가하여 ALO를 실행하면, 원하는 세팅으로 데이터 분석 모델을 생성할 수 있습니다.
experimental_plan.yaml 구조
experimental_plan.yaml에는 ALO를 구동하는데 필요한 다양한 setting값이 작성되어 있습니다. 이 setting값 중 '데이터 경로'와 'user arguments'부분을 수정하면 AI Contents를 바로 사용할 수 있습니다.
데이터 경로 입력(external_path
)
external_path
의 parameter는 불러올 파일의 경로나 저장할 파일의 경로를 지정할 때 사용합니다.save_train_artifacts_path
와save_inference_artifacts_path
는 입력하지 않으면 default 경로인train_artifacts
,inference_artifacts
폴더에 모델링 산출물이 저장됩니다.
external_path:
- load_train_data_path: ./solution/sample_data/train
- load_inference_data_path: ./solution/sample_data/test
- save_train_artifacts_path:
- save_inference_artifacts_path:
파라미터명 | DEFAULT | 설명 및 옵션 |
---|---|---|
load_train_data_path | ./sample_data/train/ | 학습 데이터가 위치한 폴더 경로를 입력합니다.(csv 파일 명 입력 X) |
load_inference_data_path | ./sample_data/test/ | 추론 데이터가 위치한 폴더 경로를 입력합니다.(csv 파일 명 입력 X) |
사용자 파라미터(user_parameters
)
user_parameters
아래step
은 asset 명을 의미합니다. 아래step: input
은 input asset단계임을 의미합니다.args
는 input asset(step: input
)의 user arguments 를 의미합니다. user arguments는 각 asset마다 제공하는 데이터 분석 관련 설정 파라미터입니다. 이에 대한 설명은 아래에 User arguments 설명을 확인해주세요.
user_parameters:
- train_pipeline:
- step: input
args:
- file_type
...
ui_args:
...
User arguments 설명
User arguments란?
User arguments는 각 asset 별 동작 설정을 위한 파라미터로 experimental_plan.yaml의 각 asset step의 args
밑에 기입해 사용합니다. AI Contents의 pipeline을 구성하는 asset마다 사용자가 다양한 기능을 데이터에 적용할 수 있도록 user arguments를 제공하고 있습니다. 사용자는 아래 가이드를 참고해서 user arguments를 변경, 추가하여 데이터에 맞는 모델링을 할 수 있습니다.
User arguments는 experimental_plan.yaml에 미리 작성되어있는 "필수 arguments"와 사용자가 가이드를 보고 추가하는 "Custom arguments"로 구분됩니다.
필수 arguments
- 필수 arguments는 experimental_plan.yaml에 바로 보여지는 기본 arguments 입니다. 대부분의 필수 arguments는 default 값이 내장되어 있습니다. default 값이 있는 arguments의 경우에는 유저가 별도로 값을 설정하지 않아도 기본 값으로 동작합니다.
- experimental_plan.yaml의 필수 arguments중 데이터 관련 arguments는 유저가 필수로 값을 설정해주어야 합니다. (ex. x_columns, y_column)
Custom arguments
- Custom arguments는 experimental_plan.yaml에 적혀있지 않지만, asset에서 제공하는 기능으로 사용자가 experimental_plan.yaml에 추가하여 사용할 수 있습니다. 각 asset 별 'args'에 추가하여 사용합니다.
FCST의 pipeline은 Input - Readiness - Preprocess - Modeling(train/inference) - Output asset 순으로 구성되어 있으며 각 asset의 기능에 맞추어 user arguments가 다르게 구성되어 있습니다. experimental_plan.yaml에 기입되어 있는 필수 user arguments를 먼저 사용해보시고, user arguments를 추가하여 데이터에 딱 맞는 CV 모델을 만들어보세요!
User arguments 요약
아래는 FCST의 user arguments 요약입니다. 'Argument 명'을 누르면 해당 arguments의 상세 설명으로 이동할 수 있습니다.
Default
- 'Default' 항목은 해당 user argument의 기본 값 입니다.
- 기본 값이 없는 경우 '-' 로 표기하였습니다.
- default에 로직이 있는 경우에는 '설명 참고'로 표기하였습니다. 'Argument 명'을 눌러 상세 설명을 확인해 주세요
ui_args
- 아래 표의 'ui_args'는 AI Conductor의 UI에서 argument 값을 변경할 수 있는
ui_args
기능 지원 여부를 나타냅니다. - O: experimental_plan.yaml의
ui_args
밑에 해당 argument 명을 입력하면 AI Conductor UI에서 arguments 값을 변경할 수 있습니다. - X:
ui_args
기능을 지원하지 않습니다. ui_args
에 대한 자세한 설명은 다음 가이드를 확인해 주세요. Write UI Parameter- FCST experimental_plan.yaml에는
ui_args
가 될 수 있는 user arguments의ui_args_detail
을 미리 전부 기입해 놓았습니다.
사용자 설정 필수 여부
- 아래 표의 '사용자 설정 필수 여부'는 AI Contents를 동작시키기 위해 사용자가 반드시 확인하고 변경해야 할 user arguments 입니다.
- O: 일반적으로 과제, 데이터 관련 정보를 입력하는 arguments로 사용자가 모델링 전에 확인해야 합니다.
- X: 사용자가 값을 변경하지 않으면 default 값으로 모델링이 진행됩니다.
Asset명 | Argument type | Argument 명 | Default | 설명 | 사용자 설정 필수 여부 | ui_args |
---|---|---|---|---|---|---|
Input | Custom | file_type | csv | input data의 파일 확장자를 입력합니다. | O | X |
Input | Custom | encoding | utf-8 | input data의 encoding type을 입력합니다. | X | X |
Readiness | 필수 | y_column | target | 예측하고자 하는 Target column 이름을 입력합니다. | O | O |
Readiness | 필수 | time_column | time | 시간 정보가 담긴 column 이름을 입력합니다. | O | O |
Readiness | 필수 | time_format | “%Y-%m-%d” | 시간 정보의 입력 format입니다. | O | O |
Readiness | 필수 | sample_frequency | daily | 시간 정보의 간격입니다. 선택 가능한 값: yearly, monthly, weekly, daily, hourly, minutely, secondly | O | O |
Readiness | 필수 | input_chunk_length | 6 | 모델의 Input 시계열 길이입니다. sample_frequency에서 입력한 단위 기준으로 입력해주세요. | O | O |
Readiness | 필수 | forecast_periods | 3 | 모델의 예측 시계열 길이입니다. sample_frequency에서 입력한 단위 기준으로 입력해주세요. | O | O |
Readiness | Custom | groupkey_column | None | 그룹키 정보가 담긴 column 이름, 해당 정보가 있는 경우에만 입력하면 됩니다. | X | X |
Readiness | Custom | x_covariates | [] | 시간에 따라 변하는 x column 이름 리스트, 해당 정보가 있는 경우에만 입력하면 됩니다. | X | X |
Readiness | Custom | static_covariates | [] | 시간에 따라 변하지 않는, 프렌차이즈상호명이나 설비 종 류와 같이 그룹마다 고유한 정보가 담긴 column 이름 리스트, 해당 정보가 있는 경우에만 입력하면 됩니다. | X | X |
Readiness | Custom | static_cov_unify_method | latest | static_covariates가 같은 그룹 내에서 동일하지 않은 경우 하나의 값으로 통일시킵니다. “oldest” 선택지의 경우 데이터프레임에서 가장 과거 값으로, “latest” 선택지의 경우 가장 최근 값으로, “most_common” 선택지의 경우 가장 빈도 수 높은 값으로 바꿔줍니다. | X | X |
Preprocess | Custom | normalizing_method | minmax | 데이터 정규화 방법입니다. | X | X |
Preprocess | Custom | encoding_method | onehot | Categorical 변수 인코딩 방법입니다. | X | X |
Preprocess | Custom | linear_interpolation | False | True인 경우, 그룹별로 시계열 데이터 중간에 결측치가 있는 경우 linear interpolation을 통해 보간합니다. 데이터 중간의 결측치가 문제로 판단 될 경우에만 True로 사용하길 추천합니다. | X | X |
Preprocess | Custom | global_padding_interpolation | False | True인 경우, 그룹별로 최소 시간 인덱스와 최대 시간 인덱스로 길이를 맞춰주고, 공백으로 채워진 경우 padding을 진행합니다. 그룹별 시작시점과 끝시점이 항상 동일해야하는 경우에만 True로 사용하길 추천합니다. | X | X |
Preprocess | Custom | global_padding_method | zero | padding 하는 방법으로 "zero"를 입력하면 0으로 padding, "mean"을 입력하면 그룹별 평균값으로 padding, "same"을 입력하면 그룹별 가장 이른 값과 가장 최근 값으로 양 쪽의 결측치를 각 각 padding 합니다. | X | X |
Preprocess | Custom | global_time_index_begin | None | 최소 시간 인덱스를 입력할 수 있으며, 공란인 경우 모든 그룹 내 최소 시간 인덱스로 자동 입력됩니다. 입력 양식은 readiness의 time_format과 동일하게 입력해야 합니다.. | X | X |
Preprocess | Custom | global_time_index_end | None | 최대 시간 인덱스를 입력할 수 있으며, 공란인 경우 모든 그룹 내 최대 시간 인덱스로 자동 입력됩니다. 입력 양식은 readiness의 time_format과 동일하게 입력해야 합니다. | X | X |
Preprocess | Custom | outlier_smoothing | False | True인 경우, 그룹 별 x covariates의 outlier를 isolationforest 방법으로 탐지하고, 이를 이전 시점의 값으로 대체합니다. 데이터에 이상치가 존재하여 예측에 영향을 미치는 경우에만, True로 사용하길 추천합니다. | X | X |
Preprocess | Custom | isolationforest_contamination | 0.001 | isolationforest 모델의 parameter로 전체 시계열 중에서 ouliter의 비중을 의미합니다. 보통 0 ~ 0.3 사이의 값을 많이 사용합니다. | X | X |
Preprocess | Custom | expand_features | False | True인 경우, tsfresh 패키지에서 생성하는 feature들을 x covariates에 대해서 생성합니다. (딥러닝 모델에서는 False로 머신러닝 모델에서는 리소스 상황에 맞게 True/False 선택 가능합니다.) | X | X |
Preprocess | Custom | expand_method | minimal | tsfresh 패키지 내에서 feature 생성 방법론을 입력할 수 있으며, "minimal"을 입력하면 통계적인 feature만 추가되며, "comprehensive"를 입력하면 모든 feature가 추가됩니다. | X | X |
Preprocess | Custom | ensure_stationarity | False | True인 경우, x covariates의 정상성을 체크하고, 만족하지 않는 경우, 제곱근을 하고, 1차 차분한 값으로 변환해줍니다. (딥러닝 모델에서는 False로 머신러닝 모델에서는 리소스 상황에 맞게 True/False 선택 가능합니다.) | X | X |
Train | 필수 | forecaster_name | nbeats | Forecasting에 사용할 모델을 선택합니다. 선택 가능한 값: nbeats. | X | X |
Train | Custom | do_validation | True | 평가데이터를 분할하여 성능 평가 진행 여부, 그룹키가 매우 많은 경우, False를 선택해주세요. | X | X |
Train | Custom | cv_numbers | 1 | Cross validation시 분할하는 개수, 실험 시 1의 값으로 설정하는 것을 추천합니다. | X | X |
Train | Custom | full_train | True | do_validation이 True일 경우, 최종모델은 전체 데이터로 할지 여부, 최종 모델에 가장 최근 트렌드를 반영하기 위해 True로 설정해주세요. | X | X |
Train | Custom | optimize_parameters | False | Hyper-parameter optimization 실행 여부, 데이터가 많은 경우에는 Running Time을 고려하여 False를 추천합니다. | X | X |
Train | Custom | use_gpu | False | GPU 활용 여부, 데이터가 많고, GPU가 제공 될 경우에는 True를 추천합니다. | X | X |
Train | Custom | memory_check | False | 학습 및 추론 과정에 있어 서 사용한 메모리를 확인하는 기능입니다. | X | X |
Train | Custom | runtime_check | False | 학습 과정에 있어서 실행 시간을 확인하는 기능입니다. 메모리 체크 기능을 활성화할 경우 런타임에 영향을 주기 때문에 메모리 체크 기능은 False로 설정해주세요. | X | X |
Train | Custom | metric_to_compare | mae | 평가지표입니다. 선택 가능한 값: mae, mape, smape, mse, rmse, r2_score | X | X |
Train | Custom | model_parameters | {nbeats: {“n_epochs”: 2, “batch_size”: 800,...}} | 모델 학습과 관련된 파라미터. 설정하지 않으면 default 파라미터로 모델을 학습합니다. 자세한 내용은 하기 파라미터 설명을 참고해주세요. | X | X |
User arguments 상세 설명
Input asset
file_type
input data의 파일 확장자를 입력합니다.
- Argument type: Custom
- 입력 type
- string
- 입력 가능한 값
- csv (defualt)
- 사용법
- file_type : csv
- ui_args: X
encoding
input data의 encoding type을 입력합니다.
- Argument type: Custom
- 입력 type
- string
- 입력 가능한 값
- utf-8 (defualt)
- 사용법
- encoding : utf-8
- ui_args: X
Readiness asset
y_column
예측하고자 하는 Target column 이름을 입력합니다.
- Argument type: 필수
- 입력 type
- string
- 입력 가능한 값
- '' (defualt)
- 사용법
- y_column : target
- ui_args: O
time_column
시간 정보가 담긴 column 이름을 입력합니다.
- Argument type: 필수
- 입력 type
- string
- 입력 가능한 값
- '' (defualt)
- 사용법
- time_column : time
- ui_args: O
time_format
시간 정보의 입력 format입니다.
- Argument type: 필수
- 입력 type
- string
- 입력 가능한 값
- “%Y-%m-%d” (defualt)
- 사용법
- time_format : “%Y-%m-%d”
- ui_args: O
sample_frequency
시간 정보의 간격입니다.
- Argument type: 필수
- 입력 type
- string
- 입력 가능한 값
- daily (defualt)
- yearly
- monthly
- weekly
- daily
- hourly
- minutely
- secondly
- 사용법
- sample_frequency : daily
- ui_args: O
input_chunk_length
모델의 Input 시계열 길이입니다. sample_frequency에서 입력한 단위 기준으로 입력해주세요.
- Argument type: 필수
- 입력 type
- integer
- 입력 가능한 값
- 6 (defualt)
- 사용법
- input_chunk_length : 6
- ui_args: O
forecast_periods
모델의 예측 시계열 길이입니다. sample_frequency에서 입력한 단위 기준으로 입력해주세요.
- Argument type: 필수
- 입력 type
- integer
- 입력 가능한 값
- 3 (defualt)
- 사용법
- forecast_periods : 3
- ui_args: O
groupkey_column
그룹키 정보가 담긴 column 이름, 해당 정보가 있는 경우에만 입력하면 됩니다.
- Argument type: Custom
- 입력 type
- string
- 입력 가능한 값
- None (defualt)
- 사용법
- groupkey_column : region
- ui_args: X
x_covariates
시간에 따라 변 하는 x column 이름 리스트, 해당 정보가 있는 경우에만 입력하면 됩니다.
- Argument type: Custom
- 입력 type
- list
- 입력 가능한 값
- [] (defualt)
- 사용법
- x_covariates : []
- ui_args: X
static_covariates
시간에 따라 변하지 않는, 프렌차이즈상호명이나 설비 종류와 같이 그룹마다 고유한 정보가 담긴 column 이름 리스트, 해당 정보가 있는 경우에만 입력하면 됩니다.
- Argument type: Custom
- 입력 type
- list
- 입력 가능한 값
- [] (defualt)
- 사용법
- static_covariates : []
- ui_args: X
static_cov_unify_method
static_covariates가 같은 그룹 내에서 동일하지 않은 경우 하나의 값으로 통일시킵니다. “oldest” 선택지의 경우 데이터프레임에서 가장 과거 값으로, “latest” 선택지의 경우 가장 최근 값으로, “most_common” 선택지의 경우 가장 빈도 수 높은 값으로 바꿔줍니다.
- Argument type: Custom
- 입력 type
- string
- 입력 가능한 값
- latest (defualt)
- 사용법
- static_cov_unify_method : latest
- ui_args: X
Preprocess asset
normalizing_method
데이터 정규화 방법입니다.
- Argument type: Custom
- 입력 type
- string
- 입력 가능한 값
- minmax (defualt)
- z-norm
- 사용법
- normalizing_method : minmax
- ui_args: X
encoding_method
Categorical 변수 인코딩 방법입니다.
- Argument type: Custom
- 입력 type
- string
- 입력 가능한 값
- onehot (defualt)
- label
- 사용법
- encoding_method : onehot
- ui_args: X
linear_interpolation
True인 경우, 그룹별로 시계열 데이터 중간에 결측치가 있는 경우 linear interpolation을 통해 보간합니다. 데이터 중간의 결측치가 문제로 판단 될 경우에만 True로 사용하길 추천합니다.
- Argument type: Custom