[천재교육] 프로젝트 기반 빅데이터 서비스 개발자 양성 과정 9기
학습일 : 2024.08.22
📕 학습 목록
- 만료 및 탈퇴 회원 예측 모델 개발
📗 프로젝트 작업 내역
1) 프로젝트 제목
만료 및 탈퇴 회원 예측 모델 개발
2) 프로젝트 목표
회원의 상태를 "만료", "중지", "탈퇴"로 분류하여 고객 이탈을 조기 예측하는 머신러닝 모델을 개발하여 기업의 고객 유지 전략에 기여
3) 사용한 데이터 셋
- 데이터: 천재교육 서비스의 회원 데이터(만료및탈퇴회원.csv)
- 만료, 중지, 탈퇴 상태를 포함한 회원의 활동 데이터를 기반으로 머신러닝 예측 모델을 학습
4) 워크플로우
① 패키지 임포트
- 사용한 주요 패키지: pandas, seaborn, numpy, matplotlib, scikit-learn, imblearn
import pandas as pd
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report, accuracy_score
from imblearn.over_sampling import SMOTE
② 데이터 로드 및 요약
df = pd.read_csv("Data/만료및탈퇴회원.csv", index_col=0)
print(df.shape)
print(df.columns)
③ 데이터 전처리
- 결측값 확인 및 새로운 feature(residual_point) 생성
# 결측값 처리 및 새로운 피처 생성
df['residual_point'] = df['earned_points'] - df['used_points']
④ 스케일링 및 변수 변환
- MinMaxScaler로 스케일링 및 로그/제곱근 변환
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
df[['residual_point']] = scaler.fit_transform(df[['residual_point']])
⑤ 오버샘플링을 통한 클래스 불균형 해결
smote = SMOTE()
X_resampled, y_resampled = smote.fit_resample(X, y)
⑥ 모델 학습
- 소프트맥스 회귀 모델을 통한 다중 클래스 분류
model = LogisticRegression(multi_class='multinomial', solver='lbfgs')
model.fit(X_resampled, y_resampled)
⑦ 성능 평가 및 시각화
from sklearn.metrics import confusion_matrix, roc_curve, auc
y_pred = model.predict(X_test)
print(classification_report(y_test, y_pred))
5) 프로젝트 결과
- 구현 기능
- 데이터 전처리 및 변환
- 오버샘플링을 통한 클래스 불균형 해결
- 머신러닝 모델 학습 및 평가
6) 트러블 슈팅
- 오류: ValueError: shapes (n,1) and (m,) not aligned
- 해결 방법: .reshape(-1, 1)을 통해 데이터 차원을 맞춰 해결
X_resampled = X_resampled.reshape(-1, 1) if X_resampled.ndim == 1 else X_resampled
7) 프로젝트를 통해 얻은 역량
- 데이터 전처리 및 불균형 해결 기술
- 모델 성능 평가 및 지표 분석 역량
📙 내일 일정
- 추천 시스템, 최적화 학습
'TIL _Today I Learned > 2024.08' 카테고리의 다른 글
[DAY 31] Machine Learning 실습 (0) | 2024.08.26 |
---|---|
[DAY 30] 추천 시스템, 최적화 (1) | 2024.08.23 |
[DAY 28] 회귀 / 차원축소 / 클러스터링 (0) | 2024.08.21 |
[DAY 27] 분류 / 회귀 모델 (0) | 2024.08.20 |
[DAY 26] Machine Learning 개론 (1) | 2024.08.19 |