은행 고객 세분화 및 정기 예금 타겟 마케팅 전략 수립¶
고객 데이터 기반 세그먼트 도출 및 마케팅 전략 수립 프로젝트
개요¶
은행 고객 데이터를 분석하여 유의미한 고객 세그먼트를 도출하고, 정기 예금 상품에 적합한 타겟 마케팅 전략을 수립한 프로젝트.
- 수행 기간: 2024.08 (프로그래머스 데브코스 4기)
- 분석 도구: SQL, Python (pandas, seaborn, matplotlib), Excel
- 프로젝트 상세: Google Docs
문제정의¶
은행의 정기 예금 상품 가입률을 높이기 위해, 기존 고객 데이터에서 타겟 고객군을 식별하고 맞춤형 마케팅 전략 수립이 필요.
핵심 질문:
- 어떤 고객 특성이 정기 예금 가입과 연관되는가?
- 기존 마케팅 가설은 유효한가?
- 효과적인 타겟 고객군은 누구인가?
데이터¶
데이터셋 구조¶
| 항목 | 내용 |
|---|---|
| 총 건수 | 약 4만여 건 |
| 변수 수 | 15개 |
| 주요 변수 | 연령, 직업, 대출 여부, 보유 상품 수, 거래 기록 등 |
데이터 수집 및 통합¶
# SQL로 데이터 추출
import pandas as pd
import sqlalchemy
query = """
SELECT
customer_id,
age,
job,
balance,
housing_loan,
personal_loan,
num_products,
deposit_subscribed
FROM bank_customers
"""
df = pd.read_sql(query, engine)
분석/모델링¶
1. EDA 및 상관관계 분석¶
약 4만여 건의 고객 정보 및 예금 상품 거래 데이터에서 15개 변수 간 상관관계 분석 및 EDA 수행.
import seaborn as sns
import matplotlib.pyplot as plt
# 상관관계 히트맵
plt.figure(figsize=(12, 8))
sns.heatmap(df.corr(), annot=True, cmap='coolwarm', center=0)
plt.title('변수 간 상관관계')
plt.show()
발견: - 기존 가설 변수들의 상관계수가 예상보다 낮음 - 신규 파생변수 탐색 필요
2. 파생변수 도출¶
상관계수가 낮은 기존 변수 대신 신규 파생변수를 도출하여 인사이트 강화.
# 연령대 그룹
df['age_group'] = pd.cut(df['age'],
bins=[0, 30, 45, 60, 100],
labels=['청년', '중년', '장년', '노년'])
# 월평균 예금액
df['avg_monthly_balance'] = df['total_balance'] / df['tenure_months']
# 상품 보유 점수
df['product_score'] = (df['num_products'] * 0.5 +
df['has_credit_card'] * 0.3 +
df['is_active_member'] * 0.2)
3. 고객 세분화¶
타겟 예금상품 가입 여부를 기준으로 고객군을 분류하고, 핵심 세그먼트 도출.
# 가입자 vs 비가입자 특성 비교
subscribed = df[df['deposit_subscribed'] == 1]
not_subscribed = df[df['deposit_subscribed'] == 0]
# 세그먼트별 특성 분석
segment_profile = df.groupby('segment').agg({
'age': 'mean',
'balance': 'mean',
'num_products': 'mean',
'deposit_subscribed': 'mean'
}).round(2)
4. 마케팅 전략 수립¶
분석 결과를 기반으로 기존 마케팅 가설을 피벗하고, 타겟별 맞춤형 상품 리뉴얼 전략 제안.
결과¶
주요 발견¶
기존 가설 변수보다 성과에 유의미한 대체 변수 발굴:
| 변수 | 기존 가설 | 실제 영향력 |
|---|---|---|
| 연령 | 높음 | 중간 |
| 소득 | 높음 | 낮음 |
| 보유 상품 수 | 낮음 | 높음 |
| 대출 여부 | 낮음 | 높음 |
타겟 고객군 정의¶
| 세그먼트 | 특성 | 전략 |
|---|---|---|
| 핵심 타겟 | 2개 이상 상품 보유, 대출 無 | 프리미엄 예금 상품 제안 |
| 잠재 타겟 | 1개 상품 보유, 활성 회원 | 번들 상품 할인 제안 |
| 관망 타겟 | 신규 고객, 거래 이력 적음 | 가입 인센티브 제공 |
주요 성과¶
- 기존 가설 변수보다 성과에 유의미한 대체 변수 (보유 상품 수, 대출 여부 등) 발굴
- 타겟 고객군 정의를 기반으로 예금 상품 리뉴얼 및 마케팅 시나리오 2종 설계
- 고객 분석 결과에 따라 마케팅 전략을 실시간 피벗하며 효율성 개선 및 리스크 최소화
- 캠페인 적용 시 시뮬레이션 기반으로 가입 전환율 약 20% 개선 시나리오 제시
배운 점¶
- 가설 검증의 중요성: 기존 가설이 항상 맞지 않음, 데이터로 검증 필수
- 파생 변수의 힘: 원본 변수보다 파생 변수가 더 강한 예측력 보유 가능
- 실시간 피벗: 분석 결과에 따라 전략을 유연하게 조정하는 능력
기술 스택¶
| 구분 | 기술 |
|---|---|
| 데이터 추출 및 가공 | SQL, Excel |
| 전처리 및 분석 | Python (pandas, seaborn, matplotlib) |
| 시각화 및 전략 도출 | seaborn, matplotlib |