9. 군집분석 실습

Sun, 07 Dec 2025 17:51:17 GMT

### **[실습 교안] AI와 함께하는 고객 세그먼트 분석** **부제: 우리 쇼핑몰의 '진짜' VIP와 '체리피커'를 찾아라** --- ### **Step 1. 데이터 페르소나 정의 (Data Onboarding)** - **목표:** AI에게 데이터 파일을 입력하고, 단순한 계산기가 아닌 **'CRM(고객 관계 관리) 전문가'**로서의 역할 부여하기 - **실습 내용:** 1. `[Superstore.xlsx](https://Superstore.xlsx)` (2,000행 샘플) 업로드 - docs.google.com : [Superstore-2000row.xlsx](https://Superstore-2000row.xlsx) 2. 주요 컬럼 탐색 및 CRM 분석 맥락 파악 3. 고객 가치 판단에 중요한 변수 후보 도출 1. 데이터의 맥락(Context) 주입 - **🔑 핵심 프롬프트 ** ``` 이 파일은 우리 회사의 온라인 스토어 주문 내역 2,000건이야. 너는 지금부터 CRM(고객 관계 관리) 전문 데이터 분석가야. 데이터를 먼저 훑어보고, 우리가 '고객 등급'을 나누려고 할 때 중요하게 봐야 할 핵심 컬럼(예: 매출, 이익, 할인율 등)이 무엇인지 찾아서 요약해줘 ``` GPT 결과 > GPT 결과 아래는 **Superstore 2,000행 데이터를 실제로 열어본 결과**를 기반으로, **CRM 관점에서 고객 등급을 나눌 때 중요한 핵심 컬럼들만 선별하여 분석가 입장에서 요약한 내용**이다. --- # 🔍 **1. 데이터 주요 컬럼 구조 요약** 데이터를 직접 확인해보니 다음과 같은 정보가 포함되어 있음: - **고객 식별 정보:** - `Customer ID`, `Customer Name`, `Segment` - **거래(주문) 정보:** - `Order ID`, `Order Date`, `Ship Date`, `Ship Mode` - **지리 정보:** - `Country`, `City`, `State`, `Postal Code`, `Region` - **상품 정보:** - `Product ID`, `Product Name`, `Category`, `Sub-Category` - **구매 금액 및 행동 정보:** - `Sales`, `Quantity`, `Discount`, `Profit` 이 중에서 **CRM 고객 등급을 나누는 데 직접적으로 영향을 주는 핵심 변수**는 아래와 같음. --- # ⭐ **2. 고객 등급(세그먼트)을 정의할 때 가장 중요한 핵심 컬럼 5가지** ## ✅ **1) Sales (매출액)** - 고객이 얼마나 "많이 구매했는가"를 나타내는 가장 기본 지표 - 고객 Lifetime Value(LTV) 계산의 기반 - VIP segmentation에서 _필수 변수_ --- ## ✅ **2) Profit (이익)** - 매출이 높아도 이익이 낮으면 회사에 도움이 안 되는 고객 - '체리피커(Cherry Picker)'를 구분하는 핵심 변수 - CRM 관점에서는 **Sales보다 Profit이 더 중요한 변수**로 사용됨 --- ## ✅ **3) Discount (할인율)** - 어떤 고객이 얼마나 할인을 받고 구매하는지 파악 가능 - 높은 할인율 → 회사 입장에서 "이익을 갉아먹는 고객" 가능성 - Profit과 반드시 함께 해석해야 함 --- ## ✅ **4) Quantity (구매 수량)** - 고객의 구매 패턴 이해에 유용 - 단일 고가 상품 vs 다품목 소액 구매자 구분 가능 - 장바구니 크기 분석(Avg Basket Size)로 확장 가능 --- ## ✅ **5) Order Date (주문일자)** - Recency / Frequency 분석(RFM)의 핵심 - 최근성(Recency)이 높은 고객 = 활성 고객 - 주문 횟수(Frequency)를 계산하기 위한 기반 --- # 🎯 **3. CRM 분석가 관점에서 실제로 사용할 대표 변수 그룹** ## 📌 **(1) 고객 가치(Value) 기반** | 변수 | 의미 | | --- | --- | | **Total Sales** | 전체 구매 금액 | | **Total Profit** | 회사에 기여한 순이익 | | **Profit Margin** | 이익률 = Profit / Sales | 특히 **Profit과 Margin**은 고객의 "질(quality)"을 구분하는 데 매우 강력함. --- ## 📌 **(2) 구매 행동(Behavior) 기반** | 변수 | 의미 | | --- | --- | | **Order Frequency** | 구매 빈도 | | **Avg Basket Size** | 평균 구매 수량 | | **Avg Discount** | 할인 의존도 | 이 변수들을 기반으로: - 충성도 높은 고객 - 할인 중심 고객 - 고액 단발성 구매자 - 이탈 위험 고객 을 자연스럽게 구분할 수 있음. --- ## 📌 **(3) RFM 분석을 위한 핵심 3요소** | RFM 요소 | Superstore 컬럼 | | --- | --- | | Recency | Order Date | | Frequency | Order ID (고객별 count) | | Monetary | Sales | --- # 🔎 **4. 요약 — 고객 등급을 나눌 때 가장 중요한 6개 컬럼 리스트** CRM 관점에서 꼭 사용하는 핵심 컬럼은 다음과 같음: 1. **Sales** — 고객의 구매 규모 2. **Profit** — 회사 관점에서의 순수익 3. **Discount** — 할인 의존도 4. **Quantity** — 장바구니 행동 패턴 5. **Order Date** — Recency 분석 기반 6. **Order ID** — Frequency 계산 기반 이 6개 컬럼을 기반으로 고객을 세분화하면: - VIP - 충성 고객 - 성장 잠재 고객 - 할인 중심 체리피커 - 이탈 위험 고객 등의 군집을 매우 명확하게 구분할 수 있음. --- 필요하면 다음 단계로: ✔ 고객 단위 집계(RFM, Profit, Discount 등) ✔ 상위 핵심 변수 시각화 ✔ 군집분석(K-Means) ✔ 군집별 페르소나 및 CRM 전략 도출 을 바로 실행해줄게! --- ### **Step 2. 데이터 전처리: 고객 관점 변환 (Data Aggregation)** - **목표:** 분석의 단위를 **'주문 건(Transaction)'**에서 **'사람(Customer)'**으로. - **실습 내용:** 1. 같은 사람이 여러 번 주문한 내역을 하나로 합치기 (`Group by`). 2. 고객의 가치를 판단할 3가지 핵심 지표 생성. - **🔑 핵심 프롬프트:** ``` 지금 데이터는 '주문 단위'라서 한 고객이 여러 줄에 걸쳐 있어. 이걸 '고객 ID(Customer ID)' 기준으로 하나로 합쳐서(Group by) 새로운 데이터셋을 만들어줘. 새로 만들 데이터에는 다음 3가지 컬럼을 꼭 포함해줘: 1.Total_Sales: 총 매출 합계 (구매력) 2.Total_Profit: 총 이익 합계 (수익성) 3.Avg_Discount: 평균 할인율 (할인 민감도) 결과 데이터의 상위 5개 행을 표로 보여줘." ``` GPT 결과 > GPT 결과 요청대로 **주문 단위 데이터를 고객 ID 기준으로 집계**해서 새로운 **고객 단위 데이터셋**을 생성했다. --- ## ✅ 고객 단위 집계 결과 (상위 5개 고객) | Customer ID | Total_Sales | Total_Profit | Avg_Discount | | --- | --- | --- | --- | | AA-10315 | 401.44 | 103.51 | 0.00 | | AA-10375 | 216.91 | 69.70 | 0.12 | | AA-10480 | 43.01 | 15.33 | 0.10 | | AB-10060 | 4,466.62 | 1,461.53 | 0.07 | | AB-10105 | 393.17 | -204.45 | 0.50 | --- ## 🔍 해석 (CRM 분석가 관점) - **Total_Sales (구매력)** - → 고객이 전체 기간 동안 얼마나 많이 구매했는지 - **Total_Profit (수익성)** - → 회사에 실제로 기여한 이익 - → 예: `AB-10105`는 매출은 있으나 **총이익이 음수** → 손실 고객 가능성 - **Avg_Discount (할인 민감도)** - → 평균 할인율이 높을수록 할인 의존 고객 - → `AB-10105`는 평균 할인율 50%로 **전형적인 체리피커 후보** --- ## 📌 다음 단계로 바로 가능한 분석 이 고객 단위 데이터는 이후 실습에 **그대로 사용 가능**하다. - 표준화(Standardization) - 계층적 군집분석(덴드로그램) - K-Means 군집분석 - VIP / 체리피커 / 이탈 위험 고객 프로파일링 다음 Step(군집분석)으로 바로 넘어갈까, 아니면 **변수 하나 더 추가(Order_Frequency 등)**하고 갈까? --- ### **Step 3. 계층적 군집분석: 시각적 이해 (Hierarchical Clustering)** - 목표: 감으로 그룹을 나누지 않고, **과학적인 근거(Elbow Method)**를 통해 적절한 그룹 갯수(K) 찾기. - 실습 내용: 1. 엘보우 기법 시각화 및 AI의 추천 받기. - 🔑 핵심 프롬프트: ``` "이제 고객을 몇 개의 그룹으로 나누는 게 좋을지 정하고 싶어. 과학적인 결정을 위해 **'엘보우 기법(Elbow Method)'**을 사용해서 그래프를 그려주고, 수학적으로 가장 적절한 그룹 갯수(K)가 몇 개인지 추천해줘." ``` GPT 결과 > GPT 결과 엘보우 기법을 적용해 **군집 수(K)를 과학적으로 검토**해봤다. 아래 그래프는 **K=1부터 K=7까지**의 SSE(Sum of Squared Errors) 변화를 나타낸 것이다. --- ![Image](https://upload.cafenono.com/image/slashpageHome/20251212/190152_8lMcUUoX8vwHAIuY1o?q=80&s=1280x180&t=outside&f=webp) ## 📊 엘보우 기법 결과 해석 그래프를 보면: - **K=1 → 2 → 3** 구간: - SSE가 **급격하게 감소** → 군집을 나누는 효과가 큼 - **K=3 → 4** 구간: - 감소 폭이 여전히 있으나 **완만해지기 시작** - **K=4 이후(K≥5)**: - SSE 감소 폭이 크게 줄어들며 **개선 효과가 제한적** 👉 **그래프가 '꺾이는 지점(Elbow)'은 K=3 또는 K=4**로 관찰된다. --- ## ✅ 추천 군집 수 (K) ### 🔹 **수학적으로 가장 적절한 K: **`**K = 3**` **이유** - K=3에서 이미 데이터의 주요 구조를 충분히 설명 - 그 이후 군집을 늘려도 SSE 개선 폭이 작음 - 비즈니스 관점에서도 **3개 그룹은 해석과 실행이 용이** ### 🔹 해석 예시 (CRM 관점) - **Cluster 1:** 고매출·고이익 → 진짜 VIP - **Cluster 2:** 매출은 있으나 이익 낮음 → 체리피커 - **Cluster 3:** 매출·이익 모두 낮음 → 일반/이탈 위험 고객 --- ## 🎯 결론 - **엘보우 기법 기준 최적 K는 **`**3**` - 과도한 세분화 없이도 - **고객 구매력 · 수익성 · 할인 민감도 차이를 명확히 구분 가능** 이제 다음 단계로 👉 **K=3으로 K-Means 군집분석을 실행**해서 실제 고객 그룹을 만들어볼 수 있어. 바로 진행할까? --- ### **Step 4. **K-Means 군집화 & 스케일링 (Clustering) - 목표: 데이터의 단위(Scale)를 맞춘 후, 전체 고객을 그룹핑. (※ 분석 왜곡 방지 교육) - 실습 내용: 1. 표준화(Standardization) 적용 후 K-Means 실행 및 산점도 시각화. - 🔑 핵심 프롬프트: ``` "추천해준 3개의 그룹으로 K-Means 군집분석을 실행해줘. ⚠️ 매우 중요: 매출액은 단위가 크고 할인율은 작으니까, 분석 전에 반드시 모든 변수를 **'표준화(Standardization)'**해서 단위를 맞춰줘.(이 과정을 안 하면 매출액만 결과에 영향을 미치게 돼). 결과는 **산점도(Scatter Plot)**로 그려줘. - X축: 매출 합계 (Total_Sales) - Y축: 수익 합계 (Total_Profit) - 색상: 군집(Cluster)" ``` GPT 결과 > GPT 결과 요청한 조건을 모두 반영해 **K=3으로 K-Means 군집분석을 실행**했고, **표준화(Standardization)를 적용한 뒤**, 해석이 쉽도록 **원래 단위(Sales–Profit)**로 산점도를 시각화했다. ![Image](https://upload.cafenono.com/image/slashpageHome/20251212/190309_6cFnFwVv65gV7NZcJi?q=80&s=1280x180&t=outside&f=webp) --- ## 📊 K-Means 군집분석 결과 (K = 3) - **분석 변수** - Total_Sales (구매력) - Total_Profit (수익성) - Avg_Discount (할인 민감도) - **사전 처리** - ✔ StandardScaler로 모든 변수 표준화 - (매출만 결과를 지배하는 문제 방지) - **시각화 방식** - X축: Total_Sales - Y축: Total_Profit - 색상: 군집(Cluster) --- ## 🔍 군집 구조 해석 (CRM 분석가 관점) 산점도 기준으로 3개 군집이 다음처럼 분리된다. ### 🟡 **Cluster 1 — 고가치 고객 (진짜 VIP)** - **특징** - 매출 높음 - 수익도 높음 - **해석** - 회사의 핵심 수익원 - 할인 없이도 구매하는 충성 고객 가능성 큼 - **전략** - VIP 전용 혜택 - 로열티 프로그램 강화 - 신상품 우선 노출 --- ### 🟢 **Cluster 2 — 안정적 일반 고객** - **특징** - 매출·수익 모두 중간 수준 - 손실 없음 - **해석** - 가장 많은 비중을 차지하는 '기본 고객층' - **전략** - 업셀링 / 크로스셀링 - 구매 빈도 증가 유도 --- ### 🟣 **Cluster 3 — 체리피커 / 손실 고객** - **특징** - 매출은 있으나 **수익이 낮거나 음수** - 일부 극단적 손실 고객 존재 - **해석** - 할인 의존도가 높아 회사 이익을 갉아먹는 고객 - **전략** - 무차별 할인 중단 - 최소 구매 금액 조건 - 쿠폰 사용 제한 정책 검토 --- ## 🎯 핵심 정리 - **표준화를 하지 않았다면** - → 할인율은 거의 반영되지 않고 매출 기준으로만 군집이 형성됐을 것 - **표준화 후 분석**으로 - → _구매력 + 수익성 + 할인 행동_이 균형 있게 반영된 군집 도출 --- 다음 단계로 아주 자연스럽게 이어갈 수 있어: 👉 **각 군집별 평균 지표(Sales / Profit / Discount) 표로 정리해서** **'진짜 VIP vs 체리피커'를 수치로 확정** 해볼까? --- ### Step 5. 페르소나 시각화 & 정의 (Insight Visualization) - **목표:** 숫자로 된 그룹의 특징을 **직관적인 도형(3차원 산점도)**으로 시각화하여 '페르소나(Persona)' 부여하기 - **실습 내용:** 1. 각 그룹의 특징(매출, 이익, 할인율)을 한눈에 비교. 2. '진짜 VIP'와 '실속형 체리피커' 구분하기. - **🔑 핵심 프롬프트:** ``` "각 그룹의 성격을 명확히 알고 싶어. 그룹별 '평균 매출(X축)', '평균 이익(Y축)', '평균 할인율('을 축으로 하는 **3차원 산점도(Radar Chart)**를 그려줘. 차트를 보고 각 그룹에 어울리는 별명을 지어줘. (예: '알짜배기 VIP', '실속형 체리피커', '이탈 우려 고객' 등)" ``` GPT 결과 > GPT 결과 요청대로 **그룹별 평균 매출·평균 이익·평균 할인율**을 축으로 한 **3차원 산점도**를 생성했고, 이를 바탕으로 **각 군집의 성격을 명확히 해석**해볼게. --- ## 📊 3차원 산점도 해석 ![Image](https://upload.cafenono.com/image/slashpageHome/20251212/201210_c9IPlNZzNOEa51Qo20?q=80&s=1280x180&t=outside&f=webp) ### 🔢 실제 군집별 평균 지표 | Cluster | 평균 매출 | 평균 이익 | 평균 할인율 | | --- | --- | --- | --- | | **0(**🟣) | 1,031 | **-205** | **0.40** | | **1(**🟢) | 493 | 80 | 0.10 | | **2(**🟡) | **3,639** | **847** | 0.09 | ![Image](https://upload.cafenono.com/image/slashpageHome/20251212/181959_IXQ1p8eWdmHSVb6rQe?q=80&s=1280x180&t=outside&f=webp) --- ## 🏷️ 군집별 별명 & 성격 정의 (CRM 관점) ### 🟣 **Cluster 0 — 「실속형 체리피커」** - **특징** - 매출은 중간 수준 - 평균 이익은 **음수** - 평균 할인율 **가장 높음** - **레이더 차트 해석** - 할인 축이 매우 큼 - 이익 축은 거의 없음 - **의미** - 할인 없이는 구매하지 않는 고객 - 회사 입장에서 **손실을 발생시키는 그룹** - **전략** - 무차별 쿠폰 제공 중단 - 최소 구매 금액 조건 설정 - 할인율 상한선 적용 --- ### 🟢 **Cluster 1 — 「안정형 일반 고객」** - **특징** - 매출·이익 모두 중간 - 할인율 낮음 - **레이더 차트 해석** - 세 축이 비교적 균형 - **의미** - 가장 흔하지만 가장 안정적인 고객군 - 관리만 잘하면 VIP로 성장 가능 - **전략** - 업셀링 / 크로스셀링 - 구매 빈도 증대 캠페인 --- ### 🟡 **Cluster 2 — 「알짜배기 VIP」** - **특징** - 매출 **압도적으로 높음** - 이익도 가장 큼 - 할인율은 낮음 - **레이더 차트 해석** - 매출·이익 축이 크게 확장 - 할인 의존도 낮음 - **의미** - 회사의 핵심 수익원 - 가장 보호해야 할 고객 - **전략** - VIP 전용 혜택 - 조기 접근(신제품, 한정판) - 로열티 프로그램 강화 --- ## 🎯 핵심 요약 - **레이더 차트는 군집의 "성격 차이"를 직관적으로 보여줌** - 이 데이터에서는: - ❌ "매출이 높다 = 좋은 고객"이 아님 - ✔ **"이익 + 할인 민감도"를 함께 봐야 진짜 고객 가치가 드러남** --- --- ### Step 6. 액션 플랜 수립 (Marketing Action) - **목표:** 분석된 그룹에 대한 마케팅 전략 수립 및 KPI 설정 - **실습 내용:** 1. 그룹별 맞춤형 마케팅 전략 수립 - **🔑 핵심 프롬프트:** ``` "우리가 분석한 각 그룹(클러스터)에 대해 마케팅 팀장이 의사결정을 내릴 수 있도록 **'전략 로드맵'**을 표로 정리해줘. 각 그룹별로 다음 4가지 항목을 포함해서 작성해: 1.그룹 정의 (Persona): 데이터 특징에 기반한 명확한 명칭 (예: 실속형 체리피커) 2.핵심 문제/기회 (Key Issue): 비즈니스 관점에서 이 그룹의 문제점이나 잠재력은 무엇인가? 3.액션 아이템 (Action Item): 이 그룹을 위해 우리가 당장 해야 할 구체적인 마케팅 활동 (할인 중단, VIP 초청 등) 4.관리 지표 (Primary KPI): 액션 실행 후 성과를 판단할 핵심 지표 (예: 객단가 상승률, 재구매율, 이익률 등)" ``` GPT 결과 > GPT 결과 아래는 **현재 군집분석 결과(매출·이익·할인율 구조)**를 그대로 반영해, **마케팅 팀장이 바로 의사결정을 내릴 수 있는 수준의 '전략 로드맵' 표**다. --- ## 📌 클러스터별 마케팅 전략 로드맵 | 클러스터 | 그룹 정의 (Persona) | 핵심 문제 / 기회 (Key Issue) | 액션 아이템 (Action Item) | 관리 지표 (Primary KPI) | | --- | --- | --- | --- | --- | | **Cluster 0** | **실속형 체리피커** | - 평균 매출은 중간 수준이나 **평균 이익이 음수**
- **할인 의존도 매우 높음**
- 매출 증가가 곧 손실 증가로 이어지는 구조 | - 무차별 할인/쿠폰 **즉시 중단**
- 최소 구매금액 조건 설정
- 할인 대신 비금전적 혜택(배송, 포인트) 전환
- 수익 개선 불가 시 마케팅 접점 축소 | - **이익률(Profit Margin)**
- 할인 사용률 감소율
- 고객 1인당 손실액 | | **Cluster 1** | **안정형 일반 고객** | - 매출·이익 모두 양(+)이나 규모는 작음
- 할인 없이도 구매 가능
- **VIP로 성장할 잠재 고객군** | - 번들 상품 / 업셀링 제안
- 구매 빈도 증가 캠페인
- 개인화 추천 강화
- VIP 전환 조건 명확화 | - **객단가(AOV)**
- 재구매율
- 구매 빈도 | | **Cluster 2** | **알짜배기 VIP** | - **매출·이익 모두 압도적으로 높음**
- 할인 의존도 낮음
- 이탈 시 비즈니스 타격 큼 | - VIP 전용 혜택 운영(선공개, 초청)
- 가격 할인보다 관계 강화 중심
- 전담 케어/우선 지원 제공 | - **고객 유지율(Retention Rate)**
- VIP 매출 비중
- 고객 생애가치(LTV) | --- ## 🎯 팀장 관점 핵심 요약 (의사결정 포인트) - **Cluster 0** - → _"매출을 늘릴수록 손해"_ - → **방어 전략(손실 통제)**가 최우선 - **Cluster 1** - → _"관리하면 돈이 되는 그룹"_ - → **성장 전략(업셀·빈도 증가)** 집중 - **Cluster 2** - → _"절대 놓치면 안 되는 고객"_ - → **유지·관계 강화 전략** 최우선 --- [end of page]