SKN_09_Project

[SK캠프 9기] 3번째_근육빵빵_250203~250206 (프로젝트 설정 및 EDA 수립)

YOOZI. 2025. 2. 6. 21:52
728x90

[근육빵빵] - Sprint 1 회고록

기간: 2025.02.03 - 2025.02.14

 

1. 이번 주 목표

  • 고객 이탈 예측 프로젝트 수행
  • 헬스장 고객 데이터셋을 활용한 이탈 예측 모델 개발
  • 다양한 머신러닝 분류 모델 비교 및 평가

 

2. 진행 상황

1. 완료된 작업

  • 프로젝트 기획 및 배경 설정 - 2시간
    • 프로젝트 목적 및 필요성 정립
    • Kaggle 데이터셋 조사 및 선정
    • 헬스장 고객 이탈 예측 프로젝트 개요 작성
  • EDA
    • 데이터 전처리
    • 시각화 및 결론 정리
    • 최종 데이터 파일 수립

2. 다음 예정 작업

 

  • 머신러닝 모델 개발
    • 각자 맡은 모델로 훈련
    • 성능 평가지표 결론 도출

 

3. 이슈 및 해결 방안

문제 상황

  • 고객 이탈 데이터셋 확보의 어려움
    • 발생 원인: 개인정보 보호 및 데이터 접근성 제한
    • 영향도: 프로젝트 방향성 결정에 중요
    • 해결 방안: Kaggle 데이터셋 활용 및 헬스장 관련 데이터 선정

의사결정 사항

  • 분류 모델 선정
    • 논의 과정: 이진 분류 문제 검토
    • 선택 이유: 고객 이탈/유지 예측에 적합
    • 대안 검토: 로지스틱 회귀, 결정 트리 등 7개 모델 비교

 

4. 팀 협업 현황

1. 회의록

  • [2025.02.06]
    • 참석자: 프로젝트 팀원
    • 주요 논의사항: 데이터셋 선정, 모델 접근 방법
    • 결정사항: 평가 지표 및 하이퍼파라미터 통일

2. 팀원 피드백

  • [팀원들]
    • 잘한 점: 명확한 프로젝트 목표 수립
    • 개선할 점: 데이터 전처리 속도
    • 제안사항: 다양한 모델 비교 필요

 

5. KPI 현황

  • 목표 대비 진척률: 60%
  • 품질 지표: 모델 평가 지표 선정 완료
  • 팀 생산성: 주요 단계 계획 수립

 

6. 회고 (4L)

Liked (좋았던 점)

  • 명확한 프로젝트 목표 설정

Learned (배운 점)

  • 고객 이탈 예측의 복잡성

Lacked (부족했던 점)

  • 데이터셋 확보의 어려움

Longed for (바라는 점)

  • 더 다양하고 풍부한 데이터셋

 

7. 주요 배운 점

  • 기술적 측면: 이진 분류 모델의 다양성
  • 협업 측면: 명확한 목표 설정의 중요성
  • 프로세스 측면: 체계적인 프로젝트 접근 방법

 

8. 다음 계획

  • 머신러닝 모델 개발 및 성능 평가
  • 모델 성능 개선을 위한 추가 연구

[이번 프로젝트 task]
  • 가입고객 이탈 예측
  • 라벨 데이터 - 이탈 여부
  • 고객 정보를 넣었을 때 이탈 할 것인가, 안 할 것인가 예측하는 모델 성립
  • 왠만하면 있는 데이터셋을 이용하기, faker는 최후의 선택.
  • EDA, 머신러닝, ROC커브(성능평가지표)

[제출할 것]
  • 데이터 전처리, 인공지능 학습 결과서, 학습된 인공지능 모델(저장해서 readme 올리기)
[평가 항목]
  • eda 목적에 맞게 잘 설정했는지
  • 이상치, 결측치 잘 처리했는지
  • 피쳐 엔지니어링 목적에 맞게 잘 했는지
  • 적절한 방법으로 전처리 잘 했는 지
  • 학습용, 검증용 잘 나눠서 평가하고 검증했는지
  • 적합한 모델을 선정했는지
  • 적절한 평가지표로 성능을 평가했는지
  • 모델이 구현한 것에 적합한 모델인지 -> 기대효과

 

이번 우리팀은 어떤 데이터 셋으로 할 지 kaggle에서 주로 서칭했다.

고객 이탈을 확인할 수 있는 데이터는 정말 너무 적고 동일한 카테고리뿐이었다.

아무래도 고객 정보와 연결되다보니 있기가 어렵지 않았나 싶다.

 

고객 이탈까지 확인할 수 있는 데이터셋을 찾았다. '헬스장'과 관련된 데이터셋으로 이것을 가지고 우리의 프로젝트 배경을 찾아나섰다. 

 

1. 개요
  • 고객 탈퇴의 주요 원인을 분석하고, 탈퇴율을 줄이기 위한 개선 방안을 탐색
2. 목표 및 방법론
  • 고객 탈퇴 예측을 위한 머신러닝 모델 개발
  • 고객 데이터를 수집·분석하여 탈퇴 확률을 예측
  • 데이터 전처리 → 특성 선택 → 모델 훈련 → 평가 단계를 거쳐 최적 모델 구축
  • 주요 영향 요인을 분석하고, 개선 전략 도출
3. 필요성
  • 고객 탈퇴는 기업 수익과 브랜드 신뢰도에 큰 영향을 미침
  • 머신러닝 기반 예측 시스템을 통해 탈퇴 가능 고객을 사전 식별하고 맞춤형 대응 제공
  • 탈퇴 원인 분석을 통해 서비스 개선 및 마케팅 전략 강화
이 프로젝트를 통해 기업은 고객 유지율을 높이고, 장기적인 성장 기반을 마련할 수 있을 것입니다.

 

위와 같은 프로젝트 설정을 했다. 그에 맞는 페르소나 수립을 하고 데이터 처리를 해보자.

  • 헬스장 사업주 시나리오를 통해 페르소나 가설을 수립했다.

우리가 사용하는 데이터셋의 feature은 아래와 같은 특징을 갖고 있고, 고객 이탈율을 파악하기 위해 모든 특성이 필요할 것 같다고 판단하여 모든 특성을 살려 전처리에 들어갔다.

Feature 설명

  1. gender: 성별 (0 = 여성, 1 = 남성)
  2. Near_Location: 헬스장이 집 또는 직장과 가까운지 여부 (1 = 가까움, 0 = 멀다)
  3. Partner: 헬스장과 제휴된 기업 직원 여부 (1 = 제휴 기업 직원, 0 = 비제휴)
  4. Promo_friends: 친구 추천 프로모션을 통해 가입했는지 여부 (1 = 예, 0 = 아니오)
  5. Phone: 전화번호 제공 여부 (1 = 제공함, 0 = 제공 안 함)
  6. Contract_period: 계약한 헬스장 이용 기간 (개월 단위, 1/6/12 등)
  7. Group_visits: 단체 수업 참여 여부 (1 = 참여, 0 = 참여 안 함)
  8. Age: 가입자의 나이
  9. Avg_additional_charges_total: 총 추가 지출 비용 (추가 서비스나 상품 구매 금액)
  10. Month_to_end_contract: 현재 계약이 종료되기까지 남은 개월 수
  11. Lifetime: 헬스장 이용 개월 수 (가입 후 총 몇 개월 동안 이용했는지)
  12. Avg_class_frequency_total: 전체 평균 수업 참여 빈도 (주 단위)
  13. Avg_class_frequency_current_month: 최근 한 달간 평균 수업 참여 빈도 (주 단위)
  14. Churn: 이탈 여부 (1 = 헬스장을 그만둔 회원, 0 = 유지한 회원)

 

EDA까지 도출을 하고 다음 수행인 머신러닝 모델 제작에 들어서기 앞서, 설정들을 맞춰보기로 했다.

 

고객 이탈을 예측하는 문제는 이진 분류(binary classification) 문제로 ->  즉, 고객이 이탈(1)할 것인가, 유지(0)할 것인가를 예측하는 것이므로 분류 모델을 사용하는 것이 적절하다고 판단했다.

  • 분류모델
    1. 로지스틱 회귀
    2. 결정 트리
    3. 랜덤 포레스트
    4. 서포트 벡터 머신 (SVM
    5. K-최근접 이웃 (KNN)
    6. XGBoost
    7. LightGBM

 

여기서 평가와 하이퍼파라미터를 통일시켜 다음 due까지 해오기로 했다.

[동일하게 뽑을 스코어]
  • 정확도(Accuracy): 전체 예측에서 맞춘 비율
  • 정밀도(Precision): 양성으로 예측한 것 중 실제 양성 비율
  • F1-score: 정밀도와 재현율의 조화 평균
[하이퍼파라미터 고정]
  • test_size=0.2
  • random_state=42
728x90