American Express - Default Prediction

MSMoon·2025년 4월 29일

kaggle 학습

목록 보기
10/18
post-thumbnail

1. 대회 설명

  • 목표: 신용카드 사용자들의 거래 이력을 기반으로, 디폴트 가능성(신용불량 여부)을 예측하는 이진 분류 모델을 구축
  • 문제 유형: 이진분류(Binary Classification)
  • 데이터 배경
    -> 고객 식별자(customer_ID) 기준의 시계열 거래 이력 (최대 13개월)
    -> 다양한 금융 변수(소득, 사용 내역 등)를 포함한 high-dimensional 데이터

2. 성능 평가 방식 이해

  • 커스텀 평가 지표 (Amex Metric) 사용
    -> 두 가지 성분의 평균: Top 4% capture rate, Weighted Gini coefficient

3. 데이터 전처리

3-1) EDA

  • 데이터가 매우 크기 때문에 로컬 환경(VSCode)에서 처리
  • 고객별 시계열 데이터는 customer_ID + S_2(날짜) 기준
  • 결측치가 다수 존재하며, 시계열 feature에 따라 다양한 패턴이 존재

3-2) Data Cleansing

  • prepare_payment_rank()를 통해 고객별 rank 생성
  • 결측값은 모델이 직접 처리할 수 있도록 남겨둠

3-3) Feature Engineering

  • 각 feature를 하나의 시계열 벡터로 간주하여 SequentialTransformer 모델 학습
  • 고객별 데이터를 시계열로 인코딩 후, 예측 확률값을 feature로 변환
  • 이진 classification task이므로 확률 기반 예측값을 추출하여 최종 메타모델의 input으로 사용

4. 모델링

4-1) 모델

  • SequentialTransformer (LightGBM 기반): feature 하나당 하나의 모델을 학습, 고객별 시계열 → 단일 예측값으로 압축
  • 최종 예측은 다수 feature에 대해 예측된 결과를 통합하여 meta-model에서 처리

4-2) 데이터 분할

  • 각 feature마다 2-Fold Cross Validation 수행 (원래는 5-Fold → 시간 단축 목적)
  • Fold별 OOF 예측값 저장

4-3) 하이퍼파라미터 튜닝

  • LightGBM 내부 파라미터 경량화 설정
    -> num_boost_round=1000
  • 해당 내용 외에는 기본 파라미터 진행

4-4) 최종 성능

  • 각 feature에 대해 OOF 예측값을 저장하고, 이를 기반으로 최종 메타모델 입력 생성

5. 정리(Lesson & Learned)

  • feature마다 시계열 인코딩 후 예측값을 feature로 사용하는 방식에 대해 배움
  • 캐글 진행 시에는 메모리 효율성과 학습 속도 고려가 매우 중요함을 체감
  • OOF → stacking → meta model로 이어지는 구조적 학습 파이프라인 설계 학습
  • 실제 원본 노트북과 차이
    -> 파일형식: .parquet → .csv (train_data.csv, test_data.csv 활용)
    -> feature 수: 전체 602개 → 상위 30개만 사용
    -> fold 수: 5 → 2로 줄여 학습 시간 단축
    -> .parquet 저장 시 pyarrow 패키지 추가 설치
    -> 학습된 feature만 추론 대상 (selected_features 기반 loop 처리)

American Express - Default Prediction

0개의 댓글