GCR Input and Artifacts
Updated 2024.05.05
데이터 준비
학습 데이터 준비
기본적으로 GCR 사용을 위해서 학습에 사용할 컬럼(x 컬럼)과 라벨 컬럼(y 컬럼)이 있는 tabular 데이터를 준비해야 합니다. 현재는 .csv
파일 포맷만 사용 가능합니다.
추론 데이터 준비
GCR의 추론 데이터셋은 라벨 컬럼이 필요하지 않다는 점 외에는 학습 데이터셋과 동일합니다. 역시 현재는 .csv
파일 포맷만 사용 가능합니다.
학습 및 추론 데이터셋 예시
GCR AI content를 git clone하게 되면 최상위 directory하에 sample_data 디렉토리가 존재하며, 여기서 train set 과 inference set을 확인할 수 있습니다. Sample data는 아래와 같은 특징을 가집니다.
- 목적: 성인의 소득이 $50,000을 초과하는지 여부 분류 문제
- 데이터: 여러가지 속성들을 가진 성인들의 정보와 소득 정보 포함 (32,561 row / 변수 별 결측치 포함
Y
) - 출처: UCI Machine Learning Repository - Adult Data Set
다음은 sample data의 학습 데이터셋을 보여줍니다. 라벨 컬럼인 target외에는 inference set과 동일합니다.
idx | age | workclass | sex | ... | ID | target |
---|---|---|---|---|---|---|
0 | 39 | State-gov | Male | ... | CX0 | 1 |
1 | 50 | Self-emp-not-inc | FeMale | ... | CX1 | 1 |
... | ... | ... | ... | ... | ... | ... |
26070 | 58 | Private | FeMale | ... | CX32558 | 0 |
26071 | 22 | Private | Male | ... | CX32559 | 1 |
다음은 sample data의 추론 데이터셋을 보여줍니다.
idx | age | workclass | sex | ... | ID |
---|---|---|---|---|---|
0 | 52 | Self-emp-not-inc | Male | ... | CX7 |
1 | 31 | Private | FeMale | ... | CX8 |
... | ... | ... | ... | ... | ... |
6487 | 27 | Private | FeMale | ... | CX32556 |
6488 | 52 | Self-emp-inc | FeMale | ... | CX32560 |
Input data directory 구조 예시
- ALO를 사용하기 위해서는 train과 inference 파일이 분리되어야 합니다. 아래와 같이 학습에 사용할 데이터와 추론에 사용할 데이터를 구분해주세요.
- 하나의 폴더 아래 있는 모든 파일을 input asset에서 취합해 하나의 dataframe으로 만든 후 모델링에 사용됩니다. (경로 밑 하위 폴더 안에 있는 파일도 합쳐집니다.)
- 하나의 폴더 안에 있는 데이터의 컬럼은 모두 동일해야 합니다.
./{train_folder}/
└ train_data1.csv
└ train_data2.csv
└ train_data3.csv
./{inference_folder}/
└ inference_data1.csv
└ inference_data2.csv
└ inference_data3.csv
데이터 요구 사항
필수 요구사항
입력 데이터는 다음 조건을 반드시 만족하여야 합니다. 데이터 예제 를 참고하십시오.
대상 데이터 | 항목 | 비고 |
---|---|---|
train set, inference set | 하나의 pipeline의 입력은 하나의 table을 입력으로 받습니다. | Train pipeline은 1개의 train set table,inference pipeline은 1개의 inference set table이 필요합니다. |
train set | train pipeline의 입력 table은 학습을 위해 label 컬럼(예측 대상)이 필요하며,label 컬럼은 결측치가 없어야 합니다. | ML 모델의 input과 같기 때문에 train set에는 라벨 컬럼이 존재하야 합니다. |
train set, inference set | train set, inference set은 동일한 컬럼 목록을 가져야 합니다. |
추가 요구사항
Train 및 inference set에서 추가적으로 가능하면 다음 조건을 만족하도록 합니다. 만족하지 않더라도 내부적으로 전처리를 진행합니다.
항목 | 비고 |
---|---|
띄어쓰기 등의 공백은 제거하거나 치환해주면 좋습니다. | 공백이 있더라도 자동으로 치환해주기 때문에 모델 구동 문제는 없습니다. ex) 베스트 샵 -> 베스트_샵 |
범주형 컬럼 위주로 구성하면 속도 및 성능이 향상 됩니다. | 연속형 변수가 들어갈 경우 selectivity가 높아지는데, 이는 임베딩에 큰 영향을 줄 수 없습니다. 즉, 변수의 값이 매우 다양하면 다른 row에 동일한 값이 출현할 기회가 적어 그래프 상에서 두 행이 연결되어 해석될 기회가 매우 적으므로 성능 향상에 도움이 되지 않습니다. |
산출물
학습/추론을 실행하면 아래와 같은 산출물이 생성됩니다.
Train pipeline
./alo/train_artifacts/
└ log/
└ experimental_history.json
└ pipeline.log
└ process.log
└ models/
└ input/
└ input_config.json
└ readiness/
└ train_config.pickle
└ train/
└ global_feature_importance.csv
└ graph_embedding.pickle
└ hparams.json
└ label_encoder.pkl
└ lime_explainer.pk
└ model.json
Inference pipeline
./alo/inference_artifacts/
└ log/
└ experimental_history.json
└ pipeline.log
└ process.log
└ output/
└ output.csv
└ score/
└ inference_summary.yaml
각 산출물에 대한 상세 설명은 다음과 같습니다.