프로젝트

심화 프로젝트 n일차

sawo11 2025. 1. 31. 23:03

주제: 은행 고객 이탈 여부 분류

주제 선정 이유: 고객에 대한 이해는 모든 도메인에서 중요하기 때문에 해보고 싶었다! 


1. 데이터 준비

  • 데이터 로드: CSV 데이터 (vs code 사용)
  • 변수 유형 파악:
    • 수치형 변수: CreditScore, Age, Tenure, Balance, EstimatedSalary
    • 범주형 변수: Geography, Gender, NumOfProducts(값이 이산적이기 때문), HasCrCard, IsActiveMember

2. 데이터 탐색 및 전처리

(1) 데이터 탐색

  • 히스토그램:
    • 각 수치형 변수의 분포를 시각화하여 이상치와 분포 확인
  • 결측치 처리:
    • 결측치 제거

(2) 변수 전처리

  1. 수치형 변수:
    • 정규화: 데이터를 0과 1 사이로 스케일링 (MinMaxScaler)
    • 표준화: 평균 0, 표준편차 1로 변환 (StandardScaler)
  2. 범주형 변수:
    • 원핫인코딩: 고유값을 이진 변수로 변환 (OneHotEncoder)
    • 라벨인코딩: 범주형 데이터를 숫자로 변환 (LabelEncoder)

3. 모델링

(1) 데이터 분리

  • 훈련/테스트 분리: 데이터를 훈련(70%)과 테스트(30%)로 나누기

(2) 모델 학습

  1. 로지스틱 회귀:
    • 선형 모델로 변수와 이탈 여부 간의 관계를 모델링
  2. 랜덤 포레스트:
    • 다수의 결정 트리를 결합한 앙상블 모델로 변수 중요도 확인 가능
  3. KNN (K-Nearest Neighbors):
    • 가장 가까운 K개의 데이터 포인트를 기반으로 분류
  4. XGBoost:
    • 트리기반 앙상블 기법으로, 가장 각광받으며 Kaggle의 상위 알고리즘
  5. CatBoost:
    • 범주형 변수를 효과적으로 처리하는 Boosting 모델

⬆️ 여기까지 완료

하지만 많은 시행착오가 있었다. 위에 기재한 전처리까지 진행 후 모델을 돌렸을 때, accuracy와 f1 score가 매우 낮게 나왔고 새로운 변수 추가 등의 처리를 다시 진행했다. 이 부분에 관한 내용은 프로젝트 완료 후 다시 기재할 예정!


⬇️ 이후 계획

4. 군집화

  • 클러스터링 알고리즘:
    • K-Means, DBSCAN 등을 사용해 고객 군집화
  • 변수 선택:
    • 고객 특징 중 이탈에 영향을 줄 수 있는 주요 변수만 사용

군집 분석

  1. 군집별 특성 확인:
    • 군집별 평균값, 분포 등을 분석하여 타겟팅할 만한 그룹 식별
  2. 이탈 여부와의 관계:
    • 군집별 이탈률을 계산하여 중요 고객 그룹 도출

5. 전략 수립 

  • 군집화 이후 --