TAD Features
기능 개요
TAD의 pipeline
AI Contents의 pipeline은 기능 단위인 asset의 조합으로 이루어져 있습니다. Train pipeline
과 Inference pipeline
은 총 5가지 asset의 조합으로 구성되어 있습니다.
Train pipeline
Input - Readiness - Preprocess - Train
Inference pipeline
Input - Readiness - Preprocess - Inference
각 단계는 asset으로 구분됩니다.
🔎 Train Pipeline
####. Input Asset
사용자가 experimental_plan.yaml
에 지정한 경로 내 모든 파일을 읽어와 하나의 dataframe으로 만들어 줍니다. 데이터 경로는 load_train_data_path
에 지정되며, 폴더 내 모든 파일을 읽어와 병합합니다.
####. Readiness Asset 데이터가 TAD 모델링에 적합한지 검사합니다. 여기서 데이터의 컬럼 유형을 분류하고, 필요한 최소 데이터 수를 확인합니다. 데이터의 모든 컬럼이 numeric 또는 categorical로 적절히 분류되어 있는지, 결측치 비율이 높지 않은지 등을 점검합니다.
3. Preprocess Asset
데이터 전처리 작업을 수행합니다. 여기에는 결측치 처리, categorical 컬럼 인코딩, numeric 데이터 스케일링, 이상치 제거가 포함됩니다. 기본 전처리 방법은 결측치가 있는 경우 categorical 컬럼은 가장 빈번한 값으로 채우고, numeric 컬럼은 중앙값으로 채우는 방식입니다.
4. Train Asset
TAD는 내장된 5종의 모델(isolation forest, knn, local outlier factor, one-class SVM, dbscan)로 하이퍼파라미터 최적화(HPO)를 진행하고, 최적의 모델을 선정하여 학습합니다. HPO는 StratifiedKFold를 사용하여 데이터셋을 여러 개의 폴드로 나누고, 각 폴드에서 모델을 학습한 후 성능을 평가합니다. 이 과정을 통해 최적의 파라미터를 찾습니다.
HPO 기능 제공
TAD의 HPO(하이퍼파라미터 최적화) 기능은 파라미터를 통해 ON/OFF할 수 있습니다. HPO를 수행하는 경우, 각 모델의 최적의 파라미터를 찾기 위해 다음과 같은 설정을 사용합니다:
- KNN: K개의 근접 이웃 정보를 기반으로 이상치 정보를 파악하는 이상치 탐지 기법입니다.
n_neighbors
: 이웃 수, 3에서 30 사이의 정수 값으로 탐색합니다.
- OCSVM: 고차원 공간에서 데이터의 이상 여부를 판별하는 기법입니다.
kernel
: 커널 타입, 'rbf', 'poly', 'sigmoid', 'linear' 중에서 선택합니다.degree
: 다항 커널의 차수, 2에서 10 사이의 정수 값으로 탐색합니다.
- LOF: 근접 이웃 간의 거리 비율을 활용하여 이상치를 탐지하는 기법입니다.
n_neighbors
: 이웃 수, 2에서 30 사이의 정수 값으로 탐색합니다.
- Isolation Forest: 데이터의 분리 경로 길이를 기반으로 이상치를 탐지하는 기법입니다.
n_estimators
: 트리의 개수, 50에서 500 사이의 50 단위로 탐색합니다.max_samples
: 각 트리의 샘플링 비율, 0.5에서 1.0 사이의 부동 소수점 값으로 탐색합니다.
- DBSCAN: 밀도 기반 클러스터링 기법으로, 밀도가 낮은 영역에 있는 점들을 이상치로 탐지합니다.
eps
: 두 샘플 간의 최대 거리, 0.1에서 10 사이의 부동 소수점 값으로 탐색합니다.min_samples
: 클러스터를 형성하는 데 필요한 최소 샘플 수, 2에서 30 사이의 정수 값으로 탐색합니다.
-
각 모델의 하이퍼파라미터 최적화는 주어진 데이터셋에 대해 교차 검증을 통해 이루어집니다. StratifiedKFold를 사용하여 데이터셋을 여러 개의 폴드로 나누고, 각 폴드에서 모델을 학습한 후 성능을 평가합니다. 이 과정에서 모델의 이상치 탐지 점수를 계산하고, 이상치 점수가 최대화되도록 하이퍼파라미터 탐색을 수행합니다.
-
최종적으로, 각 폴드에서 계산된 IQR의 평균값을 사용하여 모델 성능을 비교하고 최적의 파라미터를 찾습니다. HPO를 통해 각 모델에 대한 최적의 파라미터를 찾은 후, 4개의 모델에 대한 최종 결과 앙상블하여 최적의 값을 제공합니다.
Contamination 비율 탐색 기능
이상 탐지 모델의 성능을 높이기 위해 데이터 내 이상치 비율을 자동으로 탐색할 수 있는 기능을 제공합니다. 이 기능은 사용자가 이상치 비율을 알지 못하는 상황에서도 최적의 비율을 찾아 모델 성능을 극대화할 수 있도록 돕습니다. contamination
를 인자로 받아 여러 비율을 탐색하고 최적의 비율을 찾습니다.
- contamination: 이상치 비율 범위를 설정합니다. Search Range를 위한 리스트형태 혹은 단일 정수로 기입합니다.(Ex, [0.001, 0.2] or 0.01) 이 기능을 통해 다양한 이상치 비율을 실험하여 최적의 contamination 값을 찾아내어 모델의 정확성을 높일 수 있습니다.
Visualization 기능 제공
TAD는 이상 탐지 결과를 시각화하는 기능을 제공합니다. 이 기능은 탐지된 이상치를 시각적으로 확인하고, 데이터 분포와 이상치의 위치를 쉽게 이해할 수 있도록 돕습니다.
-
실제 데이터의 분포와 이상치로 예측한 값을 시각화해줍니다.
-
y_column이 있는 경우, 실제 이상치도 함께 시각화해줍니다.
-
visualization: Boolean Type 으로 기입합니다.(True or False)
🔎 Inference Pipeline
1. Input Asset
Inference pipeline에서도 동일하게 데이터 입력 단계가 존재하며, 추론 데이터 경로에서 파일을 불러옵니다. 데이터 경로는 load_inference_data_path
에 지정됩니다.
2. Readiness Asset
Inference pipeline에서 readiness asset은 추론 데이터의 적합성을 검사합니다. 학습 시 사용된 categorical 컬럼에 새로운 값이 있는지 확인하고, 이러한 새로운 값이 있는 경우 에러를 발생시켜 사용자가 이를 인지하고 처리할 수 있도록 합니다.
3. Preprocess Asset
Train pipeline의 preprocess asset에서 생성된 전처리 모델을 사용하여 추론 데이터를 전처리합니다. 학습 시 적용된 전처리 방법을 동일하게 적용하여 일관성을 유지합니다.
4. Inference Asset
Inference asset은 train asset에서 학습한 모델을 불러와 추론 데이터를 처리하고 결과를 반환합니다. 이를 통해 새로운 데이터에 대한 이상치 탐지를 수행할 수 있습니다.
Visualization 기능 제공
TAD는 이상 탐지 결과를 시각화하는 기능을 제공합니다. 이 기능은 탐지된 이상치를 시각적으로 확인하고, 데이터 분포와 이상치의 위치를 쉽게 이해할 수 있도록 돕습니다.
Train에서 True로 설정시 자동 반영됩니다.
사용 팁
- TAD의 auto mode 진행 후 로그 파일을 확인하여 전체 과정을 검토하세요. 로그 파일은 '*_artifacts/log/pipeline.log'에 저장됩니다.
TAD Version: 1.0.0