콘텐츠로 이동
Data Prep
상세

은행 고객 세분화 및 정기 예금 타겟 마케팅 전략 수립

고객 데이터 기반 세그먼트 도출 및 마케팅 전략 수립 프로젝트


개요

은행 고객 데이터를 분석하여 유의미한 고객 세그먼트를 도출하고, 정기 예금 상품에 적합한 타겟 마케팅 전략을 수립한 프로젝트.

  • 수행 기간: 2024.08 (프로그래머스 데브코스 4기)
  • 분석 도구: SQL, Python (pandas, seaborn, matplotlib), Excel
  • 프로젝트 상세: Google Docs

문제정의

은행의 정기 예금 상품 가입률을 높이기 위해, 기존 고객 데이터에서 타겟 고객군을 식별하고 맞춤형 마케팅 전략 수립이 필요.

핵심 질문:

  1. 어떤 고객 특성이 정기 예금 가입과 연관되는가?
  2. 기존 마케팅 가설은 유효한가?
  3. 효과적인 타겟 고객군은 누구인가?

데이터

데이터셋 구조

항목 내용
총 건수 약 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개 상품 보유, 활성 회원 번들 상품 할인 제안
관망 타겟 신규 고객, 거래 이력 적음 가입 인센티브 제공

주요 성과

  1. 기존 가설 변수보다 성과에 유의미한 대체 변수 (보유 상품 수, 대출 여부 등) 발굴
  2. 타겟 고객군 정의를 기반으로 예금 상품 리뉴얼 및 마케팅 시나리오 2종 설계
  3. 고객 분석 결과에 따라 마케팅 전략을 실시간 피벗하며 효율성 개선 및 리스크 최소화
  4. 캠페인 적용 시 시뮬레이션 기반으로 가입 전환율 약 20% 개선 시나리오 제시

배운 점

  1. 가설 검증의 중요성: 기존 가설이 항상 맞지 않음, 데이터로 검증 필수
  2. 파생 변수의 힘: 원본 변수보다 파생 변수가 더 강한 예측력 보유 가능
  3. 실시간 피벗: 분석 결과에 따라 전략을 유연하게 조정하는 능력

기술 스택

구분 기술
데이터 추출 및 가공 SQL, Excel
전처리 및 분석 Python (pandas, seaborn, matplotlib)
시각화 및 전략 도출 seaborn, matplotlib