Tabular Anomaly Detection(TAD)
Updated 2024.07.06
What is Tabular Anomaly Detection?
- TAD (Machine Learning Anomaly Detection)는 기계 학습을 활용하여 데이터에서 이상치를 자동으로 감지하는 시스템입니다.
- 이 시스템은 정상적인 데이터 패턴을 학습하여, 이와 다른 패턴을 이상치로 식별합니다.
- 새롭게 발생하는 즉, 사전에 본 적 없는 이상 현상(unseen anomalies)에 대한 탐지에 효과적이므로, 다양한 산업 분야에서 리스크 관리와 안정성 확보에 기여할 수 있습니다.
When to use TAD?
TAD는 다음과 같은 상황에서 유용합니다:
- 새로운 이상치에 대한 탐지를 하고자 할 때
- 학습 데이터가 정상 데이터 밖에 없을 때
- 이상탐지 모델개발을 위한 데이터 전처리, 모델링, 배포까지의 파이프라인을 간소화하고자 할 때
TAD는 다양한 도메인에서 이상치 탐지 모델링에 사용될 수 있습니다. 다음과 같은 분야에서 활용할 수 있습니다:
- 제조업: 기계의 고장 예측, 품질 관리
- 금융: 이상 거래 탐지, 사기 예측
- 의료: 환자의 이상 징후 탐지
- 공공 분야: 이상 행위 탐지, 범죄 예측
◆ Key Features
- AutoML 기능: 모델링 자동화를 통해 사용자가 직접 모델을 선택하고 조정할 필요 없이 최적의 모델을 자동으로 찾아줍니다.
- 데이터 전처리: 다양한 데이터 전처리 기법을 제공하여 데이터 품질을 향상시킵니다.
- 이상치 탐지: 정상 데이터를 기반으로 학습하여 새로운 이상치를 효과적으로 탐지합니다.
- 사용자 친화성: 사용자가 몇 가지 파라미터를 입력하고 실행하면, 입력된 데이터에 대해 원하는 이상치 탐지 모델을 생성할 수 있습니다.
- 코딩 없는 모델링: YAML 파일에 파라미터를 입력하여 다양한 전처리, 모델링 실험을 자동으로 수행합니다.
- 확장성: 사용자가 별도의 머신러닝 모델을 추가하여 기존 모델들과 함께 활용할 수 있습니다.
◆ Quick Start
설치하기
- ALO를 설치해주세요. 자세히 보기: Start ALO
- 하기 git 주소를 활용하여 컨텐츠를 설치해주세요. 자세히 보기: Use AI Contents (Lv.1)
- git url: https://github.com/mellerikat-aicontents/Tabular-Anomaly-Detection.git
- 설치 코드:
git clone https://github.com/mellerikat-aicontents/Tabular-Anomaly-Detection.git solution
(ALO 설치 폴더 내에서 실행)
데이터 준비
-
이상치를 탐지하고자 하는 데이터가 컬럼으로서 존재하는 csv 파일을 준비합니다.
-
각 column 별 값은 실수여야 하며, 만약 값이 비워져있거나 NaN과 같은 값이 들어간 경우 자동으로 해당 row를 제외하게 됩니다. data.csv
x_col_1 x_col_2 time_col(optional) grouupkey(optional) y_col(optional) value 1_1 value 1_2 time 1 group1 ok value 2_1 value2_2 time 2 group2 ok value 3_1 value3_2 time 3 group1 ng ... ... ... ... ...
필수 parameter 설정
-
ad/experimental_plan.yaml
내 하기 데이터 경로를 수정해주세요. 학습만 진행할 경우load_train_inference_data_path
는 수정하지 않아도 됩니다.external_path:
- load_train_data_path: ./solution/sample_data/train/
- load_inference_data_path: ./solution/sample_data/test/ -
step: readiness
의args
에 train data에 맞는x_columns
와y_column(optional)
을 입력해주세요.x_columns
: 사용자 데이터의 x 컬럼명을 리스트로 입력하여 해당 컬럼만 모델 학습에 사용합니다.y_column
: 사용자 데이터의 y 컬럼명을 입력하여 해당 컬럼을 레이블로 사용합니다. (공란일 경우, 레이블이 없는 것으로 간주함)
- step: readiness
args:
- x_columns: [x0, x1, x2, ...] # 학습 시 사용할 사용자 데이터의 x 컬럼 명 입력
- y_column: target # 사용자 데이터의 y 컬럼 명 입력 (공란일 경우, 레이블이 없는 것으로 간주함)
위 1, 2 단계만 설정하고 ALO를 실행하면 TAD 모델을 생성할 수 있습니다.
=> 좀 더 데이터에 맞는 모델을 생성하기 위해 고급 파라미터 설정을 원하는 경우, 우측 링크를 참고해주세요. 자세히보기: TAD Parameter
실행하기
- terminal 혹은 jupyter notebook에서 실행하면 됩니다. 자세히 보기: Develop AI Solution
- 실행 결과는 학습 완료된 모델파일과 예측 결과, 성능표가 저장됩니다.
Topics
TAD Version: 1.0.0, ALO Version: 2.5.2