Data-Driven Marketing

Churn Prediction Model

วิเคราะห์พฤติกรรมลูกค้า เพื่อคาดการณ์การซื้อซ้ำ

ข้อมูลจากรอบ 16 ธ.ค. 2024 — 2 ม.ค. 2025

1 / 43
ภาพรวม

สรุปข้อมูลลูกค้า

590,644
ลูกค้าทั้งหมด
571,524
ลูกค้าที่วิเคราะห์ได้
19,120
ลูกค้าใหม่ (ตัดออก)
33
Features ที่สร้าง
Churn Distribution

สัดส่วน Churn vs Retain

  • Churn (ไม่ซื้อซ้ำ) — ลูกค้าที่ซื้อในรอบก่อนแต่ไม่กลับมาซื้อในรอบถัดไป คิดเป็นประมาณ 40%
  • Retain (ซื้อซ้ำ) — ลูกค้าที่กลับมาซื้อต่อเนื่อง คิดเป็นประมาณ 60%
  • โมเดลจะช่วยระบุลูกค้ากลุ่ม Churn ก่อนที่จะสูญเสียพวกเขาไป
2 / 43
Feature Engineering

ตัวแปรที่ใช้วิเคราะห์

สร้าง 33 ตัวแปร จากพฤติกรรมการซื้อเท่านั้น (ไม่ใช้ข้อมูลส่วนบุคคล เช่น อายุ เพศ จังหวัด)

กลุ่มตัวแปรตัวอย่างความหมาย
ความถี่การซื้อpurchase_frequency, active_last_3จำนวนรอบที่ซื้อ / ซื้อใน 3 รอบล่าสุด
มูลค่าการซื้อtotal_spent, avg_spentยอดซื้อรวม / เฉลี่ยต่อรอบ
แนวโน้มการซื้อtrend_slope, momentumทิศทางยอดซื้อ ขาขึ้นหรือขาลง
ความสม่ำเสมอpurchase_std, cv_purchaseความผันผวนของยอดซื้อ
ความใกล้ชิดrecency_weighted, active_ratioน้ำหนักการซื้อล่าสุด / สัดส่วนรอบที่ซื้อ

หมายเหตุ: ใช้ข้อมูลเฉพาะรอบ 1 ถึง N-1 เท่านั้น ไม่ใช้ข้อมูลรอบ N (ที่เป็น target) เพื่อป้องกัน Data Leakage

3 / 43
EDA

การกระจายตัวของ Features

Feature Distributions

สิ่งที่เห็น: ลูกค้าที่ ซื้อซ้ำ มีแนวโน้มซื้อบ่อยกว่า ยอดซื้อสูงกว่า และมีความสม่ำเสมอมากกว่าลูกค้าที่ Churn อย่างชัดเจน — นี่คือสัญญาณที่โมเดลใช้ในการทำนาย

4 / 43
Statistical Significance

ตัวแปรไหนสำคัญที่สุด?

Cohen d Effect Size

Cohen's d — ขนาดของความแตกต่าง

  • active_last_6 (d = 0.85) — จำนวนรอบที่ซื้อใน 6 รอบล่าสุด เป็นตัวบ่งชี้ที่แรงที่สุด
  • active_last_3 (d = 0.75) — ซื้อบ่อยแค่ไหนใน 3 รอบล่าสุด
  • purchase_frequency_ratio (d = 0.73) — สัดส่วนรอบที่ซื้อต่อรอบทั้งหมด
  • ยิ่ง d สูง = ยิ่งแยกความแตกต่างระหว่าง Churn กับ Retain ได้ชัด

ลูกค้าที่ซื้อสม่ำเสมอใน 3-6 รอบล่าสุด มีโอกาสกลับมาซื้อซ้ำสูงมาก

5 / 43
Model Performance

ผลการเปรียบเทียบโมเดล

โมเดลAUC-ROCAUC-PRF1 ScoreAccuracy
Logistic Regression0.8130.7330.69374.4%
Random Forest0.8310.7580.71575.5%
XGBoost0.8350.7660.72075.8%
LightGBM0.8360.7670.72175.9%
ROC Curve

ROC Curve

  • LightGBM ให้ผลดีที่สุด ด้วย AUC = 0.836
  • AUC > 0.8 ถือว่า "ดี" สำหรับงาน Churn Prediction
  • โมเดลสามารถแยกแยะลูกค้าที่จะ Churn ออกจากลูกค้าที่จะซื้อซ้ำได้อย่างมีประสิทธิภาพ
6 / 43
Feature Importance

ปัจจัยที่มีผลต่อการ Churn มากที่สุด

Feature Importance

Top Features จากโมเดล

  • ความถี่การซื้อล่าสุด — ซื้อกี่รอบใน 3-6 รอบล่าสุด เป็นตัวชี้วัดอันดับ 1
  • มูลค่าการซื้อ — ยอดซื้อรวมและเฉลี่ยต่อรอบ
  • แนวโน้ม (Trend) — ยอดซื้อกำลังขึ้นหรือลง

สำหรับทีม Marketing: ลูกค้าที่เริ่ม "เงียบ" หรือยอดซื้อลดลงต่อเนื่อง คือกลุ่มที่ต้องเร่งดูแลก่อนจะสูญเสียไป

7 / 43
Risk Segmentation

การจัดกลุ่มระดับความเสี่ยง

Risk Levels

4 ระดับความเสี่ยง

  • Low Risk — มั่นใจว่าจะซื้อซ้ำ แทบไม่ต้องดูแลเพิ่ม
  • Medium Risk — ควรรักษาความสัมพันธ์ ส่ง offer เบาๆ
  • High Risk — เริ่มมีสัญญาณ Churn ต้องเร่งแอคชัน
  • Critical Risk — โอกาส Churn สูงมาก ต้องดำเนินการทันที
Risk Distribution

การกระจายคะแนนความเสี่ยง แยกตามผลลัพธ์จริง (Churn vs Retain)

8 / 43
Marketing Impact

ประสิทธิภาพเชิง Marketing

Gain Chart

Cumulative Gain Chart

  • หากติดต่อลูกค้า Top 20% ที่มีความเสี่ยงสูงสุด จะครอบคลุมลูกค้าที่จะ Churn ได้ประมาณ 40-45%
  • ติดต่อ Top 40% จะครอบคลุมได้ถึง 65-70%
  • ช่วยทีม Marketing ประหยัดงบโดยโฟกัสไปที่กลุ่มที่เสี่ยงจริงๆ
Confusion Matrix

Confusion Matrix

  • แสดงจำนวนลูกค้าที่โมเดลทำนายถูกและผิด
  • โมเดลสามารถจับลูกค้าที่จะ Churn ได้ถูกต้องในสัดส่วนที่สูง
  • False Positive (ทำนายว่า Churn แต่จริงๆ ซื้อซ้ำ) — ไม่เสียหาย เพราะยังได้ดูแลลูกค้าเพิ่ม
9 / 43
Cross-Period Validation — ครบ 5 งวด

โมเดลเสถียรข้ามเวลา

Train จากงวดเดียว (Period 1) แล้วทำนาย 4 งวดถัดไป โดยไม่ train ใหม่ — ผลดีกว่างวด train ทุกงวด

Period ช่วงเวลา ลูกค้า Churn Rate AUC-ROC F1 Accuracy
P1 (Train) 16 ธ.ค. → 2 ม.ค. 571,080 48.3% 0.7627 0.6935 69.3%
P2 2 ม.ค. → 17 ม.ค. 540,159 42.8% 0.7941 0.7001 71.0%
P3 17 ม.ค. → 1 ก.พ. 612,867 42.9% 0.7848 0.6949 69.5%
P4 1 ก.พ. → 16 ก.พ. 615,232 41.3% 0.7955 0.6932 70.0%
P5 16 ก.พ. → 1 มี.ค. 636,589 44.6% 0.7965 0.7126 71.0%
VERY STABLE
AUC ผันผวนแค่ 0.012
0.7848–0.7965
AUC-ROC ทุกงวดใหม่
+3%
AUC สูงกว่างวด Train
ทุกงวด

Risk Level — แม่นยำสม่ำเสมอทุกงวด

Risk Level P2 Churn จริง P3 Churn จริง P4 Churn จริง P5 Churn จริง
Low (0-25) 7.9%7.5%6.5%7.9%
Medium (26-50) 27.3%26.7%24.1%27.6%
High (51-75) 55.1%52.9%51.6%55.9%
Critical (76-100) 78.3%76.5%76.9%80.4%

สรุป: โมเดล ไม่ได้ Overfit — ทดสอบครบ 5 งวด ผลเสถียรมาก Critical Risk ยังคง churn จริง 76-80% ทุกงวด สามารถนำไปใช้จริงได้ทันที

Roadmap

P1 Train 16 ธ.ค.→2 ม.ค.
P2 Validate 2 ม.ค.→17 ม.ค.
P3 Validate 17 ม.ค.→1 ก.พ.
P4 Validate 1 ก.พ.→16 ก.พ.
P5 Validate 16 ก.พ.→1 มี.ค.
10 / 43
Phase 7: Multi-Period Retrain

รวม 3 งวด Train ใหม่ — ผลดีขึ้นไหม?

Train ด้วย 1.72 ล้านราย (P1+P2+P3) → Validate บน P4 → Test บน P5

Model Single-Period (P1 only) Multi-Period (P1+P2+P3) Delta AUC
AUC-ROCAccuracy AUC-ROCAccuracy
Random Forest 0.796970.9% 0.7986 71.8% +0.0017
LightGBM 0.796571.0% 0.7981 71.9% +0.0016
XGBoost 0.796671.0% 0.7981 71.8% +0.0016
Logistic Regression 0.790370.5% 0.7914 71.3% +0.0010
1.72M
Training Samples
(3 งวดรวม)
+0.9%
Accuracy เพิ่มขึ้น
ทุกโมเดล
81%
Critical Risk
Churn จริง

Insight: Multi-Period ช่วย Accuracy เพิ่ม ~1% แต่ AUC เพิ่มเพียงเล็กน้อย (+0.002) เพราะ features ที่สร้างมีคุณภาพสูงอยู่แล้ว — แม้ train จากงวดเดียวก็ generalize ได้ดี ไม่จำเป็นต้อง retrain ทุกงวด

Risk Level — Single vs Multi (Period 5)

Low Risk
7.3% 9.1%
Medium Risk
26.6% 30.3%
High Risk
56.0% 58.0%
Critical Risk
80.5% 81.0%
11 / 43
Phase 8

Production Scoring — ลูกค้างวด 0301

ใช้ RF Multi-Period ทำนาย 594,368 คน ที่ซื้องวด 0301 ว่าจะซื้อซ้ำงวด 0316 หรือไม่

594,368
ลูกค้าทั้งหมด
569,087
Eligible
(tenure ≥ 3)
25,281
New Customers
(score = -1)
65
Item Rounds
เป็น Features

Risk Level Distribution — ลูกค้า 569K ที่ Score ได้

Low
Medium
High
Critical

Dual-Model Scoring

Model Train Data AUC (P5) ใช้ตัดสิน
RF Multi-Period 1.72M (3 งวด) 0.7986 risk_level, action
LGB Single-Period 590K (1 งวด) 0.7627 เปรียบเทียบ

Insight: ถ้าทั้งสองโมเดลให้ score สูงทั้งคู่ → มั่นใจว่าเสี่ยง churn จริง | ถ้า score ต่างกันมาก → ลูกค้าอยู่ใน gray zone ควรพิจารณาเพิ่ม

12 / 43
Phase 9 — Segmentation

Customer Segmentation — 8 กลุ่มจาก ArrayPurchase

Cluster ลูกค้ารวม 3.66 ล้านราย จาก 6 ไฟล์ทุก Period ด้วย binary purchase array (ซื้อ/ไม่ซื้อ) ย้อนหลัง 30 งวด + behavioral features

Data Sources — 6 ไฟล์ที่ใช้

Period ลูกค้าซื้องวด ดูว่าซื้อต่องวด จำนวน Rounds Label
Period 1 (1216→0102) 1216 0102 590,644 66 มี
Period 2 (0102→0117) 0102 0117 557,461 67 มี
Period 3 (0117→0201) 0117 0201 631,970 68 มี
Period 4 (0201→0216) 0201 0216 633,479 69 มี
Period 5 (0216→0301) 0216 0301 655,296 70 มี
Period 6 — Predict (0301→0316) 0301 0316 594,368 65 ไม่มี (predict)
รวมทั้งหมด 3,663,218

8 Clusters — เรียงตาม Churn Rate จริง (ต่ำ → สูง)

Churn Rate คำนวณจาก 5 ไฟล์ training ที่มี label จริง | Pattern = avg binary purchase last 30 rounds

C6 ภักดีตลอด Churn 8.8%
776,043 คน (21.2%)
██████████████████████████████
ซื้อต่อเนื่องทุกงวด แทบไม่ขาด
→ Loyalty reward, Referral program
C4 ซื้อปานกลาง Churn 21.2%
358,568 คน (9.8%)
░░░░░▓▓███████████████████████
เริ่มช้าแต่ซื้อสม่ำเสมอ — มีโอกาสรักษา
→ Upsell, Bundle offers
C1 ลูกค้าใหม่ภักดี Churn 26.4%
324,041 คน (8.8%)
░░░░░░░░░░░░░░▓▓██████████████
เพิ่งเริ่มซื้อแต่ติดใจ ซื้อต่อเนื่อง
→ Welcome series, Onboarding bonus
C7 เพิ่งเริ่มซื้อ Churn 31.1%
398,013 คน (10.9%)
░░░░░░░░░░░░░░░░░░░░░░░▓▓█████
ลูกค้าใหม่ เริ่มซื้อไม่กี่งวดล่าสุด
→ 2nd purchase incentive, Recommendations
C0 เริ่มไม่สม่ำเสมอ Churn 55.5%
341,478 คน (9.3%)
██████████▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓██
เคยซื้อดี ตอนนี้ซื้อบ้างหยุดบ้าง
→ Regular reminders, Subscription
C5 เคยซื้อดีแต่หาย Churn 58.4%
386,604 คน (10.6%)
█████████████████████████▓▓▓██
ซื้อต่อเนื่องมานาน แต่งวดหลังเริ่มห่าง
→ Win-back, Special comeback offer
C2 เสี่ยงสูง Churn 77.7%
346,564 คน (9.5%)
░░░░░░░░░░▓▓▓▓███████▓▓▓▓░░░█▓
ซื้อไม่กี่ช่วงแล้วหาย — Churn pattern
→ Deep discount, Personal call
C3 One-time buyer Churn 80.8%
731,907 คน (20.0%)
░░░░░░░░░░░░░░░░░░░░░░░░░░░░█▓
แทบไม่เคยซื้อ ซื้อแค่ 1-2 งวดแรก
→ Low-cost re-engagement, Last-chance

Key Insight: Pattern การซื้อ สม่ำเสมอตลอดทั้ง 5 periods — กลุ่มลูกค้าที่พบในงวดหนึ่งก็พบ pattern เดียวกันในงวดอื่น แสดงว่าพฤติกรรมเหล่านี้เป็นลักษณะถาวรของลูกค้า ไม่ใช่แค่ชั่วคราว

13 / 43
Phase 9 — Detail

Cluster × Period — Churn Rate จริงตรวจสอบได้

เนื่องจาก 5 ไฟล์ training มี label จริง → ตรวจสอบได้ว่าแต่ละ cluster churn จริงกี่ %

Churn Rate จริง ตาม Cluster

C6 ภักดีตลอด 8.8%
C4 ซื้อปานกลาง 21.2%
C1 ใหม่ภักดี 26.4%
C7 เพิ่งเริ่มซื้อ 31.1%
C0 เริ่มไม่สม่ำเสมอ 55.5%
C5 เคยซื้อดีแต่หาย 58.4%
C2 เสี่ยงสูง 77.7%
C3 One-time buyer 80.8%

Action Plan สำหรับ Marketing

Low Risk (Churn <30%)
Loyalty rewards, referral programs
เน้นรักษาไม่ให้เสีย — ต้นทุนต่ำ
Medium Risk (Churn 30-55%)
Personalized offers, upsell bundles
subscription model สำหรับกลุ่มซื้อไม่สม่ำเสมอ
High Risk (Churn >55%)
Deep discount, personal outreach
Win-back campaign สำหรับกลุ่มเคยซื้อดี
Low-cost re-engage สำหรับ one-time buyers
3.66M
ลูกค้ารวม
ทุก Period
8
Behavior
Clusters
30
Purchase Rounds
per Customer
8.8-80.8%
Churn Range
ต่ำสุด → สูงสุด
14 / 43
Phase 10 — Revenue at Risk

Revenue at Risk — ถ้าปล่อยไว้จะสูญเสียเท่าไหร่?

ลูกค้าทั้งหมดที่ซื้องวด 0301
594,368 คน
Units at Risk รวม
1,393,075 ใบ/งวด
คำนวณจาก
ยอดซื้อเฉลี่ย 3 งวด × Churn Prob
LOW RISK
125,465 คน
21.1% ของลูกค้า
ซื้อเฉลี่ย 25.6 ใบ/งวด
At Risk: 319,041 ใบ (22.9%)
MEDIUM
163,167 คน
27.5% ของลูกค้า
ซื้อเฉลี่ย 8.7 ใบ/งวด
At Risk: 514,177 ใบ (36.9%)
HIGH
188,775 คน
31.8% ของลูกค้า
ซื้อเฉลี่ย 3.9 ใบ/งวด
At Risk: 446,752 ใบ (32.1%)
CRITICAL
91,680 คน
15.4% ของลูกค้า
ซื้อเฉลี่ย 1.6 ใบ/งวด
At Risk: 114,893 ใบ (8.2%)

Critical+High รวมกัน

280,455 คน (47.2% ของลูกค้า)
Units at Risk: 561,645 ใบ (40.3%)
→ เกือบครึ่งของลูกค้า คิดเป็น 40% ของยอดที่จะสูญเสีย

Retention Campaign Scenario

ไม่ทำอะไร → เสี่ยงสูญเสีย 1,393,075 ใบ
ลด Churn 20% → save ได้ +278,615 ใบ
ลด Churn 50% → save ได้ +696,537 ใบ
→ ควรเจาะกลุ่ม Critical+High ก่อน เพราะ ROI สูงสุด
15 / 43
Phase 11 — SHAP

ทำไมลูกค้าถึงได้ Risk Score แบบนั้น?

SHAP (SHapley Additive exPlanations) อธิบายว่า feature ไหนมีผลมากที่สุดในการทำนาย Churn

#1
ซื้อกี่งวดใน 6 งวดล่าสุด
SHAP 0.4572
#2
ค่าถ่วงน้ำหนักซื้อล่าสุด
SHAP 0.2186
#3
จำนวนงวดที่ซื้อทั้งหมด
SHAP 0.1873
#4
ค่าเฉลี่ยช่วงว่างระหว่างซื้อ
SHAP 0.1648
SHAP Feature Importance

Key Insights

active_last_6 (ซื้อกี่งวดใน 6 งวดล่าสุด) มีอิทธิพลมากที่สุด — มากกว่าอันดับ 2 ถึง 2 เท่า

Top 5 features รวมกันอธิบายได้มากกว่า 70% ของการตัดสินใจโมเดล

สรุปให้ Marketing: ถ้าลูกค้าซื้อน้อยลงใน 6 งวดล่าสุด + ช่วงว่างระหว่างซื้อถี่ขึ้น → โอกาส Churn สูงมาก

16 / 43
SHAP × Risk Level

แต่ละกลุ่ม Risk มีปัจจัยอะไรต่างกัน?

เปรียบเทียบ SHAP values เฉลี่ยในแต่ละกลุ่มความเสี่ยง

SHAP by Risk Level

Critical (91,680 คน)

ซื้อแค่ 1 งวดใน 6 งวดล่าสุด → SHAP +0.65
ช่วงว่างระหว่างซื้อยาว + ความถี่ซื้อต่ำ
แทบไม่มีปัจจัยช่วยรั้ง Churn

High (188,775 คน)

ซื้อ ~4 งวดใน 6 งวดล่าสุด → SHAP +0.37
เริ่มห่างจากพฤติกรรมปกติ
ยังมี tenure ช่วยรั้งอยู่บ้าง

Medium (163,167 คน)

active_last_6 ช่วยลด Churn → SHAP -0.11
ยังซื้อสม่ำเสมออยู่ แต่มีสัญญาณอ่อนๆ
ส่ง offer เบาๆ รักษาความสัมพันธ์

Low (125,465 คน)

ซื้อครบ 6/6 งวด → SHAP -0.65
ซื้อทุกงวด + tenure ยาว + ยอดสูง
ลูกค้าภักดี ไม่ต้องดำเนินการ

17 / 43
Explainability

Why did they get this score?

0316 — Each customer's top 3 factors  •  Bar: purchase history (30 rounds)  •  bought   no purchase

Critical 76–100
High 51–75
Medium 26–50
Low 0–25
18 / 43
Extended Training

Phase 12: 25-File Retrain + 12 New Features

Train 20 files (Feb–Dec 2025)  •  Val 3 files  •  Test 2 files  •  4 models × 2 feature sets = 8 models

12 New Features (v2)
Periodicity
gap_regularity
purchase_autocorr
purchase_entropy
Behavioral Shift
freq_shift
vol_shift
mid_dip_indicator
Advanced Trend
trend_acceleration
trend_r_squared
late_momentum
Engagement Depth
amount_diversity
spending_quartile
max_active_streak
33 original + 12 new = 45 features
Test Set Results (Top 4)
Feature Set Model AUC-ROC F1
v2 (45) Random Forest 0.7981 0.6943
v1 (33) Random Forest 0.7978 0.6946
v2 (45) XGBoost 0.7975 0.6955
v2 (45) LightGBM 0.7974 0.6961
25
Training Files
17M+
Training Samples
0.7981
Best AUC-ROC
45
Features (v2)

v2 (45 features) ชนะ v1 เล็กน้อย — AUC-ROC +0.0003 (RF), +0.0012 (LR)  •  vs Phase 7 (3 periods): ใกล้เคียง (0.7981 vs 0.7986)
Model อิ่มตัวที่ AUC ~0.80 — ข้อมูลเพิ่มช่วย stability แต่ไม่เพิ่ม accuracy อย่างมีนัย  •  Best model: Random Forest (v2, 45 feats) → saved as churn_v3_extended.joblib

19 / 43
Validation

Phase 14: ตรวจสอบผลทำนาย — งวด 0316

เทียบ Risk Score ที่ทำนายไว้กับข้อมูลจริง  •  ลูกค้าซื้อ/ไม่ซื้องวด 0316

Validation Metrics
0.7958
AUC-ROC
0.6757
F1 Score
0.6887
AUC-PR
71.4%
Accuracy
Actual Churn Rate per Risk Level
Risk Level จำนวนลูกค้า Actual Churn Rate
Low (0-25) 125,465 7.7%
Medium (26-50) 163,167 26.1%
High (51-75) 188,775 53.0%
Critical (76-100) 91,680 76.1%
569,087 ลูกค้า  •  Churn Rate จริง 39.0%

Validation ยืนยัน: AUC-ROC 0.7958 (ใกล้เคียง training 0.7981) — โมเดล stable ในข้อมูลจริง
Churn Rate เรียงตาม Risk Level: Low 7.7% → Medium 26.1% → High 53.0% → Critical 76.1%  •  โมเดลแยกกลุ่มได้ดี

20 / 43
Production Scoring

Phase 15: Scoring งวด 0401

ใช้ Model v3 (45 features) ทำนายลูกค้าที่ซื้องวด 0316 ว่าจะซื้อ 0401 หรือไม่

614,865
ลูกค้าที่ Score
154,248
Low Risk (25.1%)
196,093
High Risk (31.9%)
90,054
Critical Risk (14.6%)
Risk Level Distribution — เทียบ 0316 vs 0401
Risk Level งวด 0316 งวด 0401 เปลี่ยนแปลง
Low 125,465 (22.0%) 154,248 (25.1%) +28,783
Medium 163,167 (28.7%) 174,470 (28.4%) +11,303
High 188,775 (33.2%) 196,093 (31.9%) +7,318
Critical 91,680 (16.1%) 90,054 (14.6%) −1,626
569,087 (0316) → 614,865 (0401) ลูกค้า  •  +45,778 ลูกค้าใหม่ที่ซื้อ 0316

Model v3 (Random Forest, 45 features, 25-file training) → Score ลูกค้างวด 0401
Export: Churn_RiskScore_2026_0401.csv + Churn_RiskScore_Explained_2026_0401.csv (SHAP top 5 reasons)

21 / 43
Target Setting

Marketing Target Recommendations

อิงจากผลจริงงวด 0316 → ตั้งเป้าสำหรับงวด 0401 ด้วยวิธี Midpoint (เฉลี่ยระหว่าง Target เดิม กับ Actual)

Risk Level จำนวนลูกค้า (0401) Target เดิม (0316) Actual Churn (0316) New Target (0401) Action
Critical 90,054 70% 76.1% 73% Immediate intervention
High 196,093 50% 53.0% 52% Proactive outreach
Medium 174,470 25% 26.1% 26% Monitor closely
Low 154,248 5% 7.7% 6% Maintain engagement
Methodology
Midpoint Method: New Target = (Old Target + Actual) ÷ 2
ปรับทุกงวดตามผลจริง → Target เข้าใกล้ performance จริงของโมเดล
หลังจาก 3–4 งวด target จะ converge เป็นค่าที่เสถียร
Key Insight
โมเดลแยกกลุ่มได้ชัดเจน: Critical churn 76% vs Low churn 8%
ช่องว่าง 10x ยืนยันว่า risk score มีความหมายจริง
ทีม Marketing/Ads/Marcom ใช้ target นี้วัดผลแคมเปญได้ทันที
22 / 43
Phase 16

Survival Analysis

ทดลองใช้ Survival Analysis เพื่อทำนาย "เมื่อไหร่" ลูกค้าจะ Churn — ไม่ใช่แค่ "จะ Churn หรือไม่"

BG/NBD Model
ผลลัพธ์: P(alive) = 1.0 สำหรับทุกคน
สาเหตุ: Data format เป็น bi-weekly aggregate — ไม่ใช่ order-level transactions
สรุป: ไม่เหมาะกับ data format นี้ — BG/NBD ต้องการ recency/frequency/T จาก transaction data จริง
Kaplan-Meier Curves
แยก Survival Curves ตาม Risk Level:
Critical: Survival ลดลงเร็วที่สุด
Low: Survival สูงสุดตลอดช่วงเวลา
ยืนยันว่า Risk Score แยกกลุ่มได้ดี
WeibullAFT Model
Hazard Ratios: วิเคราะห์ปัจจัยที่เร่ง/ชะลอการ Churn
ระบุ features ที่มีผลต่อ "ระยะเวลาก่อน Churn" ได้
เสริมมุมมองเรื่อง timing ให้กับ risk score

Conclusion: Kaplan-Meier & WeibullAFT ให้ insight เพิ่มเติม แต่ Survival Analysis แบบเต็มรูปแบบ (BG/NBD) ต้องการ order-level transaction data จึงจะทำงานได้ถูกต้อง
Recommendation: หากมี data ระดับ order จะสามารถทำนาย CLV และ expected purchases ได้แม่นยำขึ้น

23 / 43
Phase 17

LSTM Sequence Model

ใช้ Deep Learning อ่าน pattern การซื้อตามลำดับเวลา — ไม่ต้อง Feature Engineering

Architecture
Bidirectional LSTM — 2 layers
Hidden size: 64
Parameters: 137K
Input: Raw purchase sequences
ไม่ต้อง Feature Engineering
Training
Epochs: 7 (Early Stopping)
ป้องกัน Overfitting ด้วย early stopping
ใช้ raw purchase sequence โดยตรง
เรียนรู้ pattern จากลำดับเวลาเอง
Performance
AUC-ROC: 0.7983
เทียบกับ RF v3: 0.7981
Competitive กับ RF โดยไม่ต้อง engineer features!
RF v3 vs LSTM
Model AUC-ROC Features
RF v3 0.7981 45 engineered features
LSTM 0.7983 Raw sequences only
Key Insight
LSTM สามารถเรียนรู้ pattern การ Churn จาก raw sequence ได้ เทียบเท่า RF ที่มี 45 features
แสดงว่า temporal patterns ใน purchase history มีข้อมูลเพียงพอสำหรับ prediction
เปิดโอกาสสำหรับ Ensemble → Phase 18
24 / 43
Phase 18

RF + LSTM Ensemble

รวมจุดแข็งของทั้งสองโมเดล — Feature-based (RF) + Sequence-based (LSTM)

0.7993
Ensemble AUC-ROC
+0.13%
เพิ่มจาก RF alone
45/55
RF / LSTM Weight
Best
AUC สูงสุดของ Pipeline
Risk Level Actual Churn Rate (Ensemble) RF v3 Alone Separation Quality
Critical 81.4% 76.1% ▲ ดีขึ้น
High 61.7% 53.0% ▲ ดีขึ้น
Medium 34.3% 26.1% ▲ แยกชัดขึ้น
Low 10.7% 7.7% ● ใกล้เคียง
Optimal Weighting
RF = 45%, LSTM = 55%
Grid search หา weight ที่ maximize AUC
LSTM น้ำหนักมากกว่าเล็กน้อย → temporal patterns ช่วยเสริม feature-based predictions
Stacking Ensemble
ทดลอง Meta-learner (Logistic Regression) รวม predictions ของทั้งสองโมเดล
Stacking ให้ผลใกล้เคียง weighted average
Weighted average เรียบง่ายกว่าและ interpret ง่ายกว่า
Key Takeaway
Ensemble AUC 0.7993 — สูงสุดของทั้ง Pipeline
การรวม Feature-based + Sequence-based ช่วยจับ patterns ที่แต่ละโมเดลพลาด
พร้อมใช้งานเป็น production model
25 / 43
Phase 26

Phase 26: Transaction Data Integration

เพิ่มข้อมูล Transaction เข้าสู่โมเดล

11 TX Features จากข้อมูล Transaction Order

tx_n_orders tx_total_items tx_avg_basket tx_max_basket tx_std_basket tx_n_days tx_avg_hour tx_weekend_ratio tx_days_spread tx_avg_time_to_pay tx_cancel_rate
0.7981
v3 Baseline AUC
0.8013
v5 TX AUC
+0.33%
Improvement
Phase 26 TX Integration

tx_days_spread และ tx_n_days เป็น TX features ที่สำคัญที่สุด — ลูกค้าที่กระจายวันซื้อมากกว่ามีโอกาส Churn ต่ำกว่า

26 / 43
Phase 28

Full TX Training (20 ไฟล์)

เทรนด้วยข้อมูล TX เต็ม 20 ไฟล์ — 16M rows → subsample 2M

Model Features AUC-ROC vs Baseline
v3 pretrained 45f 0.7981 baseline
v5 TX 1-file 56f 0.8003 +0.22%
v7 TX 20-file 56f 0.8001 +0.21%
Phase 28 Full TX Training

เพิ่ม training data จาก 1 ไฟล์เป็น 20 ไฟล์ ไม่ได้ช่วยปรับปรุง TX features — base features เรียนรู้เพียงพอแล้วจากข้อมูลเดิม

27 / 43
Phase 29

Multi-Period TX Trends

เทรนด์พฤติกรรม 3 งวดต่อเนื่อง — 8 Trend Features ใหม่

64
Total Features (v8)
0.8002
AUC-ROC (+0.21%)
Rank 3
txt_periods_present (0.0876)

8 Trend Features จาก 3 งวดต่อเนื่อง

txt_periods_present txt_basket_trend_3p txt_orders_trend_3p txt_consistency_3p + 4 more
txt_periods_present — rank 3/64, importance 0.0876 — จำนวนงวดที่ลูกค้าซื้อใน 3 งวดล่าสุดสำคัญมาก
txt_consistency_3p — rank 11/64 — ความสม่ำเสมอของพฤติกรรมข้ามงวด
Phase 29 TX Trends

Trend incremental เพิ่มแค่ +0.01% แต่ txt_periods_present ติด Top 3 features — ลูกค้าที่ซื้อทุกงวดใน 3 งวดล่าสุดมีโอกาส Churn ต่ำมาก

28 / 43
Business Analysis

TX Business Analysis — 30 งวด

วิเคราะห์ภาพรวมธุรกิจจากข้อมูล Transaction ทั้งหมด

3.7M
Unique Customers
947K
Peak Customers (Jul 25)
645K
Current Customers
28.8%
ซื้อแค่ 1 งวด
Tickets per Customer +26%
จำนวนลูกค้าลดลง แต่ tickets per customer เพิ่มจาก 8.4 → 10.6
ลูกค้าที่เหลือซื้อมากขึ้นต่อคน
Rush Buying: 42.6%
42.6% ของ orders เกิดใน 2 วันสุดท้ายของแต่ละงวด
พฤติกรรมซื้อเร่งรีบก่อนปิดงวด
Cancel Rate ลดลง
อัตราการยกเลิกลดจาก 7.7% → 5.9%
คุณภาพ order ดีขึ้นเรื่อยๆ
TX Business Analysis
29 / 43
TX Summary

TX Features — สรุปผล

ผลรวมจากการเพิ่ม Transaction data เข้าสู่ Pipeline

Phase 26
TX Integration
AUC 0.8013
Phase 28
Full TX 20-file
AUC 0.8001
Phase 29
TX Trends
AUC 0.8002
Business
3.7M customers
30 งวด analyzed
TX Features ช่วยจริง
AUC เพิ่มจาก 0.7981 → 0.8013 (+0.33%)
tx_days_spread, tx_n_days เป็น features สำคัญ
ข้อมูล Transaction เสริม purchase history ได้ดี
Trend ที่สำคัญที่สุด
txt_periods_present rank 3/64 (importance 0.0876)
จำนวนงวดที่ซื้อใน 3 งวดล่าสุด = indicator สำคัญ
ลูกค้าที่ซื้อทุกงวดแทบไม่ Churn
Business Insight
Platform peak 947K ลดเหลือ 645K
แต่ tickets/customer +26% (8.4 → 10.6)
ลูกค้าน้อยลง แต่ loyal customers ซื้อมากขึ้น
30 / 43
Phase 30

Phase 30: Time-based TX Features

ลูกค้าซื้อ 'เมื่อไหร่' สำคัญกว่า 'เท่าไหร่'

11
New Time Features
0.8013
Best AUC-ROC
+0.32%
Improvement
Model Features AUC-ROC Note
v3 baseline 45 0.7981 purchase only
v5 TX agg 56 0.8001 ซื้ออะไร/เท่าไหร่
v9a time only 56 0.8011 time > agg!
v9b full 67 0.8013 Best!
Phase 30 Time Features

Time features (เมื่อไหร่ที่ซื้อ) AUC 0.8011 ดีกว่า TX aggregate (ซื้ออะไร/เท่าไหร่) AUC 0.8001 — ลูกค้าที่ซื้อกระจายหลายวัน vs ซื้อวันเดียวมีพฤติกรรม Churn ต่างกัน

tx_order_spread_days
Feature Rank #26 — ซื้อกระจายกี่วัน
tx_peak_day_pct
Feature Rank #27 — สัดส่วนยอดซื้อวันสูงสุด
31 / 43
Phase 32

Phase 32: Model Algorithm Comparison

Random Forest ดีที่สุดสำหรับข้อมูลนี้

0.8013
RF v9b AUC (BEST)
0.7997
vs XGBoost
0.7991
vs LightGBM
Algorithm Features AUC-ROC Result
Random Forest v9b 67 0.8013 BEST
XGBoost 67 0.7997 −0.0016
LightGBM 67 0.7991 −0.0022
Phase 32 Model Comparison

Random Forest เป็น algorithm ที่ดีที่สุดสำหรับข้อมูลชุดนี้ — RF handles this lottery data's feature structure better than boosting algorithms — ทั้ง 3 algorithms ใช้ 67 features เหมือนกัน แต่ RF ให้ AUC สูงสุด

33 / 43
Phase 33

Phase 33: Feature Selection & Pruning

67 → 32 features โดยไม่เสีย AUC

67→32
Features (-52%)
0.8010
AUC (ไม่เปลี่ยน)
+0.26%
F1 (ดีขึ้น)
Method Features AUC-ROC Result
RFE (Recursive Feature Elimination) 32 0.8007 BEST (selected)
Top-K (K=35) 35 0.8006 more features
Correlation Pruned 53 0.8008 53 still too many

31 highly correlated pairs found (|r| > 0.9) — Final AUC: 0.8010, F1: 0.7015

Phase 33 Feature Selection

Model ง่ายลงครึ่งหนึ่ง ประมวลผลเร็วขึ้น — ลด features จาก 67 เหลือ 32 ด้วย RFE โดยไม่เสีย AUC แม้แต่น้อย — F1 ยังดีขึ้นจาก 0.6997 เป็น 0.7015 (+0.26%)

34 / 43
Phase 34

Phase 34: Demographics Feature Test

อายุ เพศ จังหวัด — ช่วยทำนาย Churn ได้แค่ไหน?

+0.03%
AUC เพิ่มขึ้น (เล็กน้อย)
52.4%
Churn อายุ 20-30 (สูงสุด)
46.3%
Churn ผู้หญิง (vs 39.4% ผู้ชาย)
7f
Demo features (AUC 0.5844)

Data Quality: อายุมี outliers (เช่น 0, 150 ปี) — ใช้ age bins แทน raw age
จังหวัดอาจไม่ตรง (ย้ายถิ่นฐาน/ที่อยู่ตามบัตร) — province ไม่มีผลต่อ churn

Model Features AUC-ROC Result
Base (v3 Churn only) 45 0.7981 Baseline
Base + Demo (v11) 52 0.7984 +0.03% เท่านั้น
Demo only 7 0.5844 แทบไม่ต่างจากสุ่ม

Demographics เดี่ยวๆ ไม่สามารถทำนาย churn ได้ (AUC 0.5844 ≈ random)

Churn Rate ตามกลุ่มประชากร

ตามอายุ

20-30: 52.4% (สูงสุด)
31-40: 44.8%
41-50: 40.2%
51-60: 37.1% (ต่ำสุด)

ตามเพศ

หญิง: 46.3%
ชาย: 39.4%
ต่างกัน: +6.9%

ตามจังหวัด

ไม่มีผลต่อ churn
(ข้อมูลอาจไม่แม่นยำ)

Phase 34 Demographics

สรุป: Demographics เพียงอย่างเดียวไม่พอทำนาย churn — พฤติกรรมการซื้อสำคัญกว่าข้อมูลส่วนตัวมาก — แต่ Age segments มีประโยชน์สำหรับ Marketing targeting (อายุ 20-30 churn 52.4% ควรเน้น retention campaign กลุ่มนี้)

35 / 43
Phase 35

Phase 35: Prize Feature Engineering

ข้อมูลการถูกรางวัลเปลี่ยนเกม — ทะลุ AUC ceiling!

12
Prize Features
0.8081
Best AUC (v12b)
+1.01%
Improvement over baseline

Winner vs Non-winner: คนถูกรางวัล churn เพียง 20.4% vs ไม่ถูกรางวัล 47.3% — ต่างกัน 26.9%!
FN ลดลง 17,632 ราย — จับ churners ได้มากขึ้น

Model Features AUC-ROC vs Baseline
v3 (Churn only) 45 0.7981 Baseline
v9b (TX+Time) 67 0.8013 +0.32%
v12 (Churn+Prize) 57 0.8050 +0.69%
v12b (Full+Prize) 79 0.8081 +1.01%
Prize Feature Rank Description
prize_rounds_since_last_win #14 ระยะห่างจากถูกรางวัลล่าสุด
prize_total_wins จำนวนครั้งที่ถูกรางวัลรวม
prize_win_rate อัตราการถูกรางวัล
Phase 35 Prize Features

Key Insight: คนที่เคยถูกรางวัล churn น้อยกว่าอย่างมาก — ข้อมูลรางวัลช่วยทำลาย AUC ceiling ที่ 0.8013 — v12b รวม 79 features จาก Churn + TX + Time + Prize ได้ AUC 0.8081 (NEW BEST!)

36 / 43
Phase 36-38

Model Validation, Recovery & Segments

โมเดลเสถียรแค่ไหน? ลูกค้ากลับมาไหม? Segment model ช่วยอะไร?

0.7856
Mean AUC (±0.013)
80%
Pass Target (25 periods)
94.8%
Churners กลับมา (Recovery)
3 งวด
Golden Window (Recovery)

Model Stability (Phase 36): AUC 0.7856±0.013 across 25 periods
Range: 0.7557–0.8114 — สม่ำเสมอทุกงวด, 80% ผ่านเป้า

Churn Recovery (Phase 37): 94.8% ของ churners กลับมาซื้อภายหลัง
Golden window = 3 งวดแรก หลัง churn — ช่วงเวลาทองในการดึงกลับ

Segment Models (Phase 38): Global model robust — segment-specific models ไม่ชนะ
ยกเว้น Fading segment ที่ได้ประโยชน์สูงสุดจาก specialized model

Recovery Window กลับมา (%) Action
1-3 งวดแรก สูงสุด ติดต่อทันที!
4-6 งวด ปานกลาง ส่ง re-engagement
7+ งวด ต่ำ Low-cost campaign

Key Insight: โมเดลเสถียรข้าม 25 งวด — 94.8% ของ churners กลับมา ถ้าติดต่อภายใน 3 งวด (golden window) — Global model แข็งแกร่ง ไม่ต้อง segment-specific

37 / 43
Phase 39 — STAR

Winning Effect: ถูกรางวัลเปลี่ยนทุกอย่าง

Prize Impact Deep Dive — ข้อมูลที่ทรงพลังที่สุดของ Pipeline

+68.2%
ซื้อเพิ่มหลังถูกรางวัล
2.0x
ROI (Revenue vs Prize Payouts)
3 งวด
Honeymoon Period
57%
Critical → Low Risk (Winners)

Churn Halving Cascade — ยิ่งถูกบ่อย ยิ่งไม่ churn

0 wins
52.1%
1 win
29.5%
2 wins
18.5%
3 wins
10.9%
4 wins
4.6%
5+ wins
2.4%

แต่ละครั้งที่ถูกรางวัลเพิ่ม Churn Rate ลดลงเกือบครึ่ง

Winning Effect Duration

Effect lasts 3-6+ periods depending on prize type
Honeymoon period: 3 งวด (post-win boost)
รางวัลที่ 4: effect คงอยู่ 5 งวด (sweet spot)

Risk Shift After Winning

Even Critical risk winners → 57% become Low risk
Revenue from winners = 2.0x prize payouts
ถูกรางวัลบ่อยๆ ดีกว่าถูกครั้งเดียวใหญ่

Star Insight: การถูกรางวัลเป็น single most powerful churn reducer — +68.2% more tickets, churn halves per win, ROI 2.0x — Congratulate winners immediately + special offers within 1 period

38 / 43
Phase 39 — Prize Type Analysis

Winning Effect — พฤติกรรมการซื้อแยกตามประเภทรางวัล

ถูกรางวัลประเภทนี้ → ซื้อเพิ่มเท่าไหร่ → ต่อเนื่องกี่งวด — ข้อมูลจาก 101,259 คน (72.2% ซื้อเพิ่มจริง)

ประเภทรางวัล เงินรางวัล จำนวนคนถูก ซื้อก่อนถูก ซื้อหลังถูก (peak) % เพิ่ม effect คงอยู่
เลขท้าย 2 ตัว 2,000 244,540 30.9 ใบ 40.7 ใบ +32% 3 งวด
เลขท้าย 3 ตัว 4,000 55,122 44.0 ใบ 58.5 ใบ +33% 3 งวด
เลขหน้า 3 ตัว 4,000 63,370 61.1 ใบ 75.3 ใบ +30% 2 งวด
รางวัลที่ 5 20,000 3,734 73.6 ใบ 103.4 ใบ +40% 3 งวด
⭐ รางวัลที่ 4 40,000 2,039 76.1 ใบ 112.5 ใบ +48% 5 งวด
รางวัลที่ 3 80,000 417 84.4 ใบ 165.6 ใบ +96% 2 งวด
ใกล้เคียงที่ 1 100,000 88 104.5 ใบ 162.5 ใบ +55% 3 งวด
รางวัลที่ 2 200,000 235 52.7 ใบ 124.7 ใบ +137% 6+ งวด
รางวัลที่ 1 6,000,000 51 15.5 ใบ 247.5 ใบ +1,499% 6+ งวด
เลขท้าย 2 ตัว (2,000 ฿) — 244,540 ราย
ก่อนถูก
30.9 ใบ
หลังถูก
40.7 ใบ (+32%)
▮▮▮▯▯▯ คงอยู่ 3 งวด
เลขท้าย 3 ตัว (4,000 ฿) — 55,122 ราย
ก่อนถูก
44.0 ใบ
หลังถูก
58.5 ใบ (+33%)
▮▮▮▯▯▯ คงอยู่ 3 งวด
เลขหน้า 3 ตัว (4,000 ฿) — 63,370 ราย
ก่อนถูก
61.1 ใบ
หลังถูก
75.3 ใบ (+30%)
▮▮▯▯▯▯ คงอยู่ 2 งวด
รางวัลที่ 5 (20,000 ฿) — 3,734 ราย
ก่อนถูก
73.6 ใบ
หลังถูก
103.4 ใบ (+40%)
▮▮▮▯▯▯ คงอยู่ 3 งวด

ตัวอย่างลูกค้าจริง — แยกตามประเภทรางวัล

ประเภทรางวัล P Number ก่อนถูก (3 งวด) หลังถูก (3 งวด) % เพิ่ม
รางวัลที่ 1 (6M) P6126733 50, 13, 10 ใบ 77, 169, 219 ใบ +537%
รางวัลที่ 2 (200K) P9625615 10, 39, 10 ใบ 116, 86, 143 ใบ +485%
ใกล้เคียงที่ 1 (100K) P12326827 13, 64, 132 ใบ 519, 191, 265 ใบ +367%
รางวัลที่ 3 (80K) P9694506 14, 11, 15 ใบ 29, 35, 36 ใบ +150%
⭐ รางวัลที่ 4 (40K) P6314310 3, 10, 5 ใบ 38, 59, 34 ใบ +628%
รางวัลที่ 5 (20K) P8979560 34, 56, 44 ใบ 64, 91, 51 ใบ +54%
เลขหน้า 3 ตัว (4K) P6271280 35, 43, 33 ใบ 270, 163, 51 ใบ +336%
เลขท้าย 3 ตัว (4K) P11738146 0, 22, 59 ใบ 676, 119, 189 ใบ +1,115%
เลขท้าย 2 ตัว (2K) P8783832 200, 487, 456 ใบ 1,059, 754, 632 ใบ +114%

Sweet Spot: รางวัลที่ 4 (40K) — ซื้อเพิ่ม +48% และ effect คงอยู่ 5 งวด (ยาวนานที่สุดรองจากรางวัลที่ 1-2) — เงินรางวัลพอดี ไม่มากจนเลิกซื้อ ไม่น้อยจนไม่ตื่นเต้น | 4,284 shift up targets (High/Critical ที่เพิ่งถูกรางวัล) พร้อมใช้ใน winning_effect_shift_targets.json

39 / 43
Phase 40-41

Cross-Team Insights & Actionable Catalog

15 insights + ตัวอย่างลูกค้าจริง สำหรับ 4 ทีม (Ads, Marcom, SEO, Revenue)

Ads Team

  • • เพศหญิง churn 28.7% vs ชาย 24.3%
  • • อายุ 18-25 churn สูงสุด 35.9%
  • • Peak hour: เที่ยงวัน — ยิง ads ก่อนเที่ยง

Marcom Team

  • • Small buyers churn 32.1% vs big buyers 7.2%
  • • Congratulate winners within 1 period
  • • Golden window: 3 งวด (94.8% recovery)

SEO Team

  • • วันอาทิตย์ peak: 993K orders
  • • Publish content 4-5 วันก่อนหวยออก
  • • Rush buying pattern: last 2 days = 3-4x normal

Revenue Team

  • • Top 10% customers = 63.2% of volume
  • • Annual winning effect uplift: +356.7M THB
  • • Winners buy +68.2% more → ROI 2.0x

insight_catalog.json — 15 Insights + Real Customer Examples

Demographics (3) Behavior (4) Winning Effect (4) Timing (2) Revenue (2)

แต่ละ insight มี: metric, customer example (P-code), action, team owner, priority

Key Insight: Cross-team insights ช่วยแปลง data เป็น action สำหรับแต่ละทีม — insight_catalog.json พร้อมใช้ใน production, มีตัวอย่างลูกค้าจริงประกอบทุก insight

40 / 43
Phase 42

20 Purchase Behavior Insights — Event-Driven

เหตุการณ์และจุดเริ่มต้นที่เปลี่ยนพฤติกรรมลูกค้า — จาก 57 ตัวอย่างลูกค้าจริงพร้อม bar chart

เหตุการณ์ที่เปลี่ยนพฤติกรรม

ถูกรางวัลซ้ำ → effect ทบต้น
ครั้งแรก +90% → ครั้งที่ 2 +180%
ถูกแล้วไม่ถูกอีก → ยอดตกกลับ
effect หมดภายใน 2.8 งวด
Cancel + สั่งใหม่ = ลูกค้าดี
loyal กว่าปกติ 70% vs 57.7%
Cancel ไม่สั่งใหม่
churn ทันที 48.2%

จุดเริ่มต้นที่ทำนายอนาคต

ซื้อครั้งแรก 50+ ใบ
อยู่นานกว่าค่าเฉลี่ย 71%
Early first-timer อยู่นานกว่า Rush
Early vs Rush 30.9 vs 18.3 งวด
3 งวดแรกซื้อ 2/3 → อยู่นานกว่า 3/3
gap ช่วงแรกไม่ใช่ปัญหา retention ดีกว่า
Safe zone = 48 งวด (~2 ปี)
ถ้ารักษาถึงจุดนี้ ไม่หายแล้ว

Note: ทุก insight มี bar chart ตัวอย่างลูกค้าจริง 3 คน — รวม 57 ตัวอย่าง พร้อมดูที่ charts/

41 / 43
Phase 42

20 Purchase Behavior Insights — Patterns & Timing

Pattern การซื้อและจังหวะเวลาที่บ่งบอกพฤติกรรม — actionable signals สำหรับ retention

Pattern การซื้อ

Streak 7+ งวดขาด → กลับ 96.5%
Spike 2x → ตกกลับ (ชั่วคราว) 76.5%
Dip 50% = early warning → churn 84.4%
Burst buyer churn < consistent 36.1% vs 40%
เพิ่ม 3 งวดติด → ลดงวดที่ 4 70.2%

เวลา & การกลับมา

Rush churn vs Early churn 48.2% vs 32.3%
Rush→Early → ยอดเพิ่ม +37.7%
สั่งหลายครั้ง/งวด vs ครั้งเดียว 19.7% vs 52.3%
กลับมาซื้อเยอะกว่าเดิม 123-153%
กลับมาซื้อ 20+ ใบ → churn 21%

Key Takeaway: Pattern ชี้ชัด — สั่งหลายครั้ง/งวด churn แค่ 19.7% vs ครั้งเดียว 52.3% | Dip 50% เป็น early warning (84.4% churn) — ทุก insight มี bar chart ตัวอย่างลูกค้าจริง 3 คน รวม 57 ตัวอย่าง

42 / 43
สรุปทั้งหมด

End-to-End Churn Prediction Pipeline

จากข้อมูลดิบ → สู่ Action Plan พร้อมใช้งานจริง

1-4
Data → Model
33 features, 4 models
5-6
Cross-Period
5 งวด AUC 0.78-0.80
7
Multi-Period
1.72M → AUC 0.7986
8
Scoring
594K → Risk Score
9
Segmentation
3.66M → 8 Clusters
10
Revenue at Risk
Units at Risk → Action
11
SHAP Explain
ทำไมได้ Score นี้?
12
25-File Retrain
45 feats → AUC 0.7981
13
Export
joblib + MLflow
14
Validation
ตรวจสอบกับจริง
15
Score 0401
ทำนายงวดถัดไป
16
Survival
KM + WeibullAFT
17
LSTM
AUC 0.7983
18
Ensemble
AUC 0.7993
19-25
Operations
Validate & Score
26
TX Integration
AUC 0.8013
28-29
TX Trends
64 feats, 3.7M cust
30
Time TX
เมื่อไหร่ > เท่าไหร่
35
Prize Features
AUC 0.8081
36-38
Validation
25 periods, 94.8%
39
Winning Effect
+68.2% tickets
40-41
Cross-Team
15 insights
42
Behavior Insights
20 insights, 57 examples
3.66M
ลูกค้าวิเคราะห์
0.8081
Best AUC (Prize)
615K
Scored (0401)
8
Behavior Clusters
42
Phases Complete

Pipeline ครบวงจร: ข้อมูลดิบ → Feature Engineering → Model Training → Cross-Validation → Scoring → Segmentation → SHAP → Extended Retrain → Validation → Survival → LSTM → Ensemble → TX Integration → TX Trends → Time TX → Feature Selection → Demographics → Prize Features → Model Validation → Winning Effect → Cross-Team Insights → 20 Behavior Insights
42 Phases — AUC 0.8081 (v12b) — 79 features, 3.7M customers, 20 behavior insights, พร้อม deploy

43 / 43