# 9. 군집분석 실습

### **[실습 교안] 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** | **실속형 체리피커** | - 평균 매출은 중간 수준이나 **평균 이익이 음수**<br>- **할인 의존도 매우 높음**<br>- 매출 증가가 곧 손실 증가로 이어지는 구조 | - 무차별 할인/쿠폰 **즉시 중단**<br>- 최소 구매금액 조건 설정<br>- 할인 대신 비금전적 혜택(배송, 포인트) 전환<br>- 수익 개선 불가 시 마케팅 접점 축소 | - **이익률(Profit Margin)**<br>- 할인 사용률 감소율<br>- 고객 1인당 손실액 |
| **Cluster 1** | **안정형 일반 고객** | - 매출·이익 모두 양(+)이나 규모는 작음<br>- 할인 없이도 구매 가능<br>- **VIP로 성장할 잠재 고객군** | - 번들 상품 / 업셀링 제안<br>- 구매 빈도 증가 캠페인<br>- 개인화 추천 강화<br>- VIP 전환 조건 명확화 | - **객단가(AOV)**<br>- 재구매율<br>- 구매 빈도 |
| **Cluster 2** | **알짜배기 VIP** | - **매출·이익 모두 압도적으로 높음**<br>- 할인 의존도 낮음<br>- 이탈 시 비즈니스 타격 큼 | - VIP 전용 혜택 운영(선공개, 초청)<br>- 가격 할인보다 관계 강화 중심<br>- 전담 케어/우선 지원 제공 | - **고객 유지율(Retention Rate)**<br>- VIP 매출 비중<br>- 고객 생애가치(LTV) |

---

## 🎯 팀장 관점 핵심 요약 (의사결정 포인트)

- **Cluster 0**
- → _"매출을 늘릴수록 손해"_
- → **방어 전략(손실 통제)**가 최우선

- **Cluster 1**
- → _"관리하면 돈이 되는 그룹"_
- → **성장 전략(업셀·빈도 증가)** 집중

- **Cluster 2**
- → _"절대 놓치면 안 되는 고객"_
- → **유지·관계 강화 전략** 최우선

---

[end of page]

For the site tree, see the [root Markdown](https://slashpage.com/lion.md).
