# 데이터 디렉토리 가이드 ## 데이터 준비 방법 ### 1. 필요한 파일 `data/raw/` 폴더에 다음 **3개의 CSV 파일**을 넣기: #### ① `big_data_set1_f.csv` - 매장 기본 정보 **필수 컬럼**: - `ENCODED_MCT`: 매장 ID(고유 식별자) - `MCT_ME_D`: 폐업 날짜(폐업 시에만 값 존재, 타겟 변수) - `HPSN_MCT_BZN_CD_NM`: 업종명(카페, 음식점 등) - `MCT_SIGUNGU_NM`: 지역명 #### ② `ds2_monthly_usage.csv` - 월별 이용 데이터 **필수 컬럼**: - `ENCODED_MCT`: 매장 ID - `TA_YM`: 년월(예: 202401) - `RC_M1_SAA`: 월 매출액 구간(1_0-25%, 2_25-50% 등) - `MCT_OPE_MS_CN`: 영업 개월 수 구간 - `RC_M1_AV_NP_AT`: 평균 이용 금액 구간 **선택 컬럼**: - `APV_CE_RAT`: 승인 취소율 - `DLV_SAA_RAT`: 배달 매출 비율 #### ③ `ds3_monthly_customers.csv` - 월별 고객 데이터 **필수 컬럼**: - `ENCODED_MCT`: 매장 ID - `TA_YM`: 년월 - `MCT_UE_CLN_REU_RAT`: 재이용 고객 비율 (%) **선택 컬럼**: - `MCT_UE_CLN_NEW_RAT`: 신규 고객 비율 - `M12_MAL_1020_RAT`, `M12_MAL_30_RAT` 등: 연령대별 남성 고객 비율 - `M12_FME_1020_RAT`, `M12_FME_30_RAT` 등: 연령대별 여성 고객 비율 --- ## 데이터 형식 참고 ### 매출/운영 구간 코드 ```python # 매출 구간 (RC_M1_SAA) '1_0-25%' → 하위 25 % (매우 낮음) '2_25-50%' → 25 - 50 % (낮음) '3_25-50%' → 25 - 50 % (낮음) '4_50-75%' → 50 - 75 % (보통) '5_75-100%' → 75 - 100 % (높음) '6_100%+' → 상위권(매우 높음) # 영업 개월 수 구간 (MCT_OPE_MS_CN) '1_0-25%' → 신생(0 - 6개월) '2_25-50%' → 초기(6 - 12개월) '3_25-50%' → 초기(6 - 12개월) '4_50-75%' → 중기(12 - 24개월) '5_75-100%' → 장기(24 - 36개월) '6_100%+' → 오래된 매장(36개월 +) ``` ### 특수값 처리 ```python # 결측값 표시 -999999.9 → 데이터 없음(NaN으로 처리됨) NaN → 데이터 없음 ``` --- ## 다음 단계 데이터 준비가 완료되면: 1. **Jupyter 노트북으로 학습**: ```bash jupyter notebook notebooks/train_model.ipynb ``` 2. **또는 스크립트로 학습**: ```bash python src/train.py ``` 3. **모델 확인**: ```bash ls models/ # xgboost_model.pkl, lightgbm_model.pkl, config.json 등 확인 ``` --- ## 자주 묻는 질문 **Q1. 파일 인코딩 오류가 발생합니다.** A: CSV 파일의 인코딩을 확인하고 `encoding='cp949'` 또는 `encoding='utf-8'`로 변경하세요. **Q2. 월별 데이터가 2개월밖에 없는데 괜찮나요?** A: 최소 3개월 이상의 데이터가 필요합니다. 추세 분석을 위해 6개월 이상 권장합니다. **Q3. 폐업 매장이 너무 적은데 괜찮나요?** A: 전체의 1-5% 정도면 충분합니다. SMOTE로 클래스 불균형을 해결합니다. **Q4. 필수 컬럼이 없으면 어떻게 하나요?** A: `feature_engineering.py`에서 해당 특징 생성 부분을 수정하거나 기본값을 사용하도록 설정하세요. --- ## 지원 문제가 발생하면 GitHub Issues에 데이터 구조와 오류 메시지를 포함하여 등록해주세요.