๊ด€๋ฆฌ ๋ฉ”๋‰ด

Alroha

[Olist ์ด์ปค๋จธ์Šค ๋ถ„์„ #5] Tableau๋กœ RFM ์„ธ๊ทธ๋จผํŠธ ์‹œ๊ฐํ™”ํ•˜๊ธฐ ๋ณธ๋ฌธ

์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

[Olist ์ด์ปค๋จธ์Šค ๋ถ„์„ #5] Tableau๋กœ RFM ์„ธ๊ทธ๋จผํŠธ ์‹œ๊ฐํ™”ํ•˜๊ธฐ

ํ—ค์ด๋กœํ•˜ 2026. 7. 9. 15:41

๐ŸŽฏ ์ด๋ฒˆ ํฌ์ŠคํŒ… ๋ชฉํ‘œ

SQL๋กœ ๋งŒ๋“  RFM ๋งˆํŠธ๋ฅผ Tableau์— ์—ฐ๊ฒฐํ•˜๊ณ , ๊ณ„์‚ฐ๋œ ํ•„๋“œ๋กœ R/F/M ์ ์ˆ˜๋ฅผ ์ง์ ‘ ๋งŒ๋“ค์–ด ๊ณ ๊ฐ์„ 5๊ฐœ ์„ธ๊ทธ๋จผํŠธ๋กœ ๋ถ„๋ฅ˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ› ๏ธ ์‚ฌ์šฉ ๋„๊ตฌ: Tableau Public (๋ฌด๋ฃŒ) ๐Ÿ“ ๋ฐ์ดํ„ฐ: mart_rfm.csv


๐Ÿง  RFM ์„ธ๊ทธ๋จผํŠธ๋ž€?

93,357๋ช…์˜ ๊ณ ๊ฐ์„ ๊ฐœ๋ณ„๋กœ ๋ณผ ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. RFM ์ ์ˆ˜๋กœ ๊ทธ๋ฃนํ™”ํ•ด์•ผ "์–ด๋–ค ๊ณ ๊ฐ์—๊ฒŒ ๋ฌด์Šจ ๋งˆ์ผ€ํŒ…์„ ํ•ด์•ผ ํ•˜๋Š”๊ฐ€" ์— ๋‹ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ธ๊ทธ๋จผํŠธ ํŠน์ง• ๋งˆ์ผ€ํŒ… ์ „๋žต

VIP ์ตœ๊ทผ·์ž์ฃผ·๋งŽ์ด ๊ตฌ๋งค ํ”„๋ฆฌ๋ฏธ์—„ ํ˜œํƒ, ์ถฉ์„ฑ๋„ ํ”„๋กœ๊ทธ๋žจ
์ถฉ์„ฑ๊ณ ๊ฐ ์ž์ฃผ ๊ตฌ๋งคํ•˜์ง€๋งŒ ์ตœ๊ทผ์„ฑ ๋ณดํ†ต ์žฌ๊ตฌ๋งค ์ฟ ํฐ, ์‹ ์ƒํ’ˆ ์•Œ๋ฆผ
์ดํƒˆ์œ„ํ—˜ ๊ณผ๊ฑฐ์—” ์ž์ฃผ ์ƒ€์ง€๋งŒ ์ตœ๊ทผ ์—†์Œ ์œˆ๋ฐฑ ์บ ํŽ˜์ธ, ํ• ์ธ ์˜คํผ
์‹ ๊ทœ๊ณ ๊ฐ ์ตœ๊ทผ ์ฒซ ๊ตฌ๋งค ์˜จ๋ณด๋”ฉ, 2์ฐจ ๊ตฌ๋งค ์œ ๋„
์ผ๋ฐ˜๊ณ ๊ฐ ๋‚˜๋จธ์ง€ ์ผ๋ฐ˜ ํ”„๋กœ๋ชจ์…˜

โš™๏ธ STEP 1. ๊ณ„์‚ฐ๋œ ํ•„๋“œ ๋งŒ๋“ค๊ธฐ

๊ฒฝ๋กœ: ๋ฐ์ดํ„ฐ ํŒจ๋„ ๋นˆ ๊ณณ ์šฐํด๋ฆญ → ๊ณ„์‚ฐ๋œ ํ•„๋“œ ๋งŒ๋“ค๊ธฐ

๐Ÿ’ก ์ƒ๋‹จ ๋ฉ”๋‰ด "๋ถ„์„" ํƒญ๊ณผ ํ—ท๊ฐˆ๋ฆฌ์ง€ ๋งˆ์„ธ์š” — ๊ทธ๊ฑด ์ถ”์„ธ์„ ·์ฐธ์กฐ์„  ์ถ”๊ฐ€ํ•˜๋Š” ํŒจ๋„์ž…๋‹ˆ๋‹ค.


R_Score (์ตœ์‹ ์„ฑ)

IF [Recency] <= 100 THEN 3
ELSEIF [Recency] <= 300 THEN 2
ELSE 1
END

Recency๋Š” ๋‚ฎ์„์ˆ˜๋ก ์ตœ๊ทผ ๊ตฌ๋งค → ๋‚ฎ์€ ๊ฐ’์— ๋†’์€ ์ ์ˆ˜(3์ )


F_Score (๋นˆ๋„)

- R_Score ์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

IF [Frequency] >= 3 THEN 3
ELSEIF [Frequency] = 2 THEN 2
ELSE 1
END

M_Score (๊ธˆ์•ก)

IF [Monetary] >= 500 THEN 3
ELSEIF [Monetary] >= 200 THEN 2
ELSE 1
END

RFM_Segment (์ตœ์ข… ๋ถ„๋ฅ˜)

IF [R_Score] = 3 AND [F_Score] >= 2 AND [M_Score] >= 2 THEN 'VIP'
ELSEIF [R_Score] >= 2 AND [F_Score] >= 2 THEN '์ถฉ์„ฑ๊ณ ๊ฐ'
ELSEIF [R_Score] = 1 AND [F_Score] >= 2 THEN '์ดํƒˆ์œ„ํ—˜'
ELSEIF [R_Score] = 3 AND [F_Score] = 1 THEN '์‹ ๊ทœ๊ณ ๊ฐ'
ELSE '์ผ๋ฐ˜๊ณ ๊ฐ'
END

 

์ตœ์ข… ํ…Œ์ด๋ธ”


๐Ÿ“Š ์‹œ๊ฐํ™” 1. ์„ธ๊ทธ๋จผํŠธ๋ณ„ ๊ณ ๊ฐ ์ˆ˜ — ๋ง‰๋Œ€ ์ฐจํŠธ

1. RFM_Segment → ์—ด ์„ ๋ฐ˜
2. ์นด์šดํŠธ(Customer Unique Id) → ํ–‰ ์„ ๋ฐ˜
3. RFM_Segment → ์ƒ‰์ƒ
4. ์นด์šดํŠธ → ๋ ˆ์ด๋ธ”
5. ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ

์ธ์‚ฌ์ดํŠธ: ์ผ๋ฐ˜๊ณ ๊ฐ์ด ์••๋„์  ๋‹ค์ˆ˜ — VIP๋Š” ์†Œ์ˆ˜์ง€๋งŒ ๋งค์ถœ ๊ธฐ์—ฌ๋„๊ฐ€ ํ•ต์‹ฌ


๐Ÿ“Š ์‹œ๊ฐํ™” 2. ์„ธ๊ทธ๋จผํŠธ๋ณ„ ํ‰๊ท  Monetary — ๋ง‰๋Œ€ ์ฐจํŠธ

1. RFM_Segment → ์—ด ์„ ๋ฐ˜
2. Monetary (ํ‰๊ท ) → ํ–‰ ์„ ๋ฐ˜
3. RFM_Segment → ์ƒ‰์ƒ
4. ํ‰๊ท  Monetary → ๋ ˆ์ด๋ธ”

์ธ์‚ฌ์ดํŠธ ํฌ์ธํŠธ: VIP ๊ณ ๊ฐ์˜ ํ‰๊ท  ๊ตฌ๋งค์•ก์ด ์ผ๋ฐ˜๊ณ ๊ฐ ๋Œ€๋น„ ๋ช‡ ๋ฐฐ์ธ์ง€ ํ™•์ธ (1.7๋ฐฐ)


๐Ÿ“Š ์‹œ๊ฐํ™” 3. ์„ธ๊ทธ๋จผํŠธ ๋น„์ค‘ — ํŠธ๋ฆฌ๋งต

1. Show Me → ํŠธ๋ฆฌ๋งต ์„ ํƒ
2. RFM_Segment → ์ƒ‰์ƒ
3. ์นด์šดํŠธ(Customer Unique Id) → ํฌ๊ธฐ
4. RFM_Segment + ์นด์šดํŠธ → ๋ ˆ์ด๋ธ”

ํŠธ๋ฆฌ๋งต์€ ๋น„์ค‘์„ ๋ฉด์ ์œผ๋กœ ํ‘œํ˜„ํ•ด ๋Œ€์‹œ๋ณด๋“œ์—์„œ ๊ฐ€์žฅ ์ž„ํŒฉํŠธ ์žˆ๋Š” ์ฐจํŠธ์ž…๋‹ˆ๋‹ค.


๐Ÿšจ ์‹œํ–‰์ฐฉ์˜ค & ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…

โŒ ์‹ค์ˆ˜ 1. ๊ณ„์‚ฐ๋œ ํ•„๋“œ ๋ฉ”๋‰ด๋ฅผ ๋ชป ์ฐพ์Œ

์ƒํ™ฉ: ์ƒ๋‹จ "๋ถ„์„" ํƒญ์—์„œ ๊ณ„์‚ฐ๋œ ํ•„๋“œ๋ฅผ ์ฐพ์œผ๋ ค ํ•จ ๋ฌธ์ œ: ์ƒ๋‹จ ๋ถ„์„ ํƒญ์€ ์ถ”์„ธ์„ ·์ฐธ์กฐ์„  ์ถ”๊ฐ€ ํŒจ๋„ — ๊ณ„์‚ฐ๋œ ํ•„๋“œ ์—†์Œ ํ•ด๊ฒฐ: ๋ฐ์ดํ„ฐ ํŒจ๋„ ๋นˆ ๊ณณ ์šฐํด๋ฆญ → ๊ณ„์‚ฐ๋œ ํ•„๋“œ ๋งŒ๋“ค๊ธฐ


โŒ ์‹ค์ˆ˜ 2. ๋ง‰๋Œ€ ์ฐจํŠธ๊ฐ€ ํฌ๋กœ์Šคํƒญ์œผ๋กœ ๋‚˜์˜ด

์ƒํ™ฉ: ์—ด์— RFM_Segment, ํ–‰์— Customer Unique Id๋ฅผ ์˜ฌ๋ ธ๋”๋‹ˆ ๊ณ ๊ฐ ID๊ฐ€ ํ–‰๋งˆ๋‹ค ํŽผ์ณ์ง„ ํฌ๋กœ์Šคํƒญ ํ˜•ํƒœ๋กœ ์ถœ๋ ฅ๋จ

์›์ธ: Customer Unique Id๊ฐ€ ์ฐจ์›(๊ฐœ๋ณ„ ์‹๋ณ„์ž)์œผ๋กœ ์ธ์‹๋˜์–ด ์ง‘๊ณ„ ์•ˆ ๋จ

ํ•ด๊ฒฐ:

ํ–‰ ์„ ๋ฐ˜์˜ Customer Unique Id ์ œ๊ฑฐ
→ ์นด์šดํŠธ(mart_rfm) ์ธก์ •๊ฐ’์„ ํ–‰ ์„ ๋ฐ˜์— ์˜ฌ๋ฆฌ๊ธฐ

๊ตํ›ˆ: ์ง‘๊ณ„(COUNT) ๋ฅผ ํ–‰์— ์˜ฌ๋ ค์•ผ ์„ธ๊ทธ๋จผํŠธ๋ณ„ ํ•ฉ์‚ฐ์ด ๋ฉ๋‹ˆ๋‹ค


๐Ÿ’ก RFM ์ ์ˆ˜ ๊ธฐ์ค€ ์„ค์ • ๋ฐฉ๋ฒ•

๋ฐฉ๋ฒ• ์„ค๋ช…

๋ถ„์œ„์ˆ˜ ๊ธฐ์ค€ ์ƒ์œ„ 33% → 3์ , ์ค‘๊ฐ„ → 2์ , ํ•˜์œ„ → 1์ 
๋น„์ฆˆ๋‹ˆ์Šค ๊ธฐ์ค€ "30์ผ ๋‚ด ๊ตฌ๋งค = ํ™œ์„ฑ๊ณ ๊ฐ"
์ˆ˜๋™ ์„ค์ • ๋ฐ์ดํ„ฐ ๋ถ„ํฌ ํ™•์ธ ํ›„ ์ง์ ‘ ๊ตฌ๊ฐ„ ์ง€์ • (์˜ค๋Š˜ ๋ฐฉ์‹)

 


๐Ÿ’ก ํšŒ๊ณ 

์ž˜ํ•œ ์ 

  • ๊ณ„์‚ฐ๋œ ํ•„๋“œ 4๊ฐœ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์Œ“์•„ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๋กœ์ง ์ดํ•ด
  • ํŠธ๋ฆฌ๋งต์œผ๋กœ ์„ธ๊ทธ๋จผํŠธ ๋น„์ค‘์„ ๋ฉด์ ์œผ๋กœ ์ง๊ด€์ ์œผ๋กœ ํ‘œํ˜„
  • ๊ฐ ์„ธ๊ทธ๋จผํŠธ์— ๋น„์ฆˆ๋‹ˆ์Šค ์˜๋ฏธ(๋งˆ์ผ€ํŒ… ์ „๋žต)๋ฅผ ์—ฐ๊ฒฐํ•ด์„œ ํ•ด์„

์•„์‰ฌ์šด ์ 

  • ๊ณ„์‚ฐ๋œ ํ•„๋“œ ๊ฒฝ๋กœ๋ฅผ ์ฒ˜์Œ์— ๋ชป ์ฐพ์•„ ์‹œ๊ฐ„ ์†Œ์š”
  • ํฌ๋กœ์Šคํƒญ vs ์ง‘๊ณ„ ์ฐจํŠธ์˜ ์ฐจ์ด๋ฅผ ์ฒ˜์Œ์—” ํ—ท๊ฐˆ๋ฆฐ ๊ฒƒ → ์ฐจ์› vs ์ธก์ •๊ฐ’ ๊ฐœ๋…์„ ํ•ญ์ƒ ๋จผ์ € ํ™•์ธํ•˜๋Š” ์Šต๊ด€ ํ•„์š”

[๊ณผ์ œ] 6๊ฐ• ์‹ค์Šต ๊ณผ์ œ

  1. ์„ธ๊ทธ๋จผํŠธ๋ณ„ ๊ณ ๊ฐ ์ˆ˜๋ฅผ ๋ง‰๋Œ€ ์ฐจํŠธ๋กœ ๋งŒ๋“ค๊ณ  → ๊ฐ€์žฅ ๋งŽ์€ ์„ธ๊ทธ๋จผํŠธ๋Š”? ์ผ๋ฐ˜ ๊ณ ๊ฐ
  2. VIP ๊ณ ๊ฐ์˜ ํ‰๊ท  Monetary๋Š” ์ผ๋ฐ˜๊ณ ๊ฐ ๋Œ€๋น„ ๋ช‡ ๋ฐฐ์ธ๊ฐ€? 1.7๋ฐฐ
  3. ํŠธ๋ฆฌ๋งต์—์„œ ์ดํƒˆ์œ„ํ—˜ ๊ณ ๊ฐ์ด ์ „์ฒด์˜ ๋ช‡ %๋ฅผ ์ฐจ์ง€ํ•˜๋Š”๊ฐ€? 0.2%


๐Ÿ”œ ๋‹ค์Œ ํฌ์ŠคํŒ…

[Olist ์ด์ปค๋จธ์Šค ๋ถ„์„ #6] Tableau ๋Œ€์‹œ๋ณด๋“œ ์™„์„ฑ — KPI + RFM + ๋ฐฐ์†ก ํ•œ ํ™”๋ฉด์— ๋‹ด๊ธฐ


๋ณธ ์‹œ๋ฆฌ์ฆˆ๋Š” Kaggle์˜ Olist Brazilian E-Commerce ๋ฐ์ดํ„ฐ์…‹์„ ํ™œ์šฉํ•œ ํฌํŠธํด๋ฆฌ์˜ค ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.