วิทยาลัยนานาชาตินวัตกรรมดิจิทัล มหาวิทยาลัยเชียงใหม่
14 พฤศจิกายน 2568
ปัญหาการจำแนกประเภท (Classification Problems) ในทางธุรกิจเกิดขึ้นได้ในหลายบริบท โดยมีเป้าหมายเพื่อ ทำนายว่าข้อมูลใหม่ควรอยู่ในกลุ่มที่กำหนดไว้ล่วงหน้าใด ตัวอย่างที่พบบ่อยในทางธุรกิจ ได้แก่:
ตัวอย่างปัญหา (Example Problems):
การพยากรณ์การยกเลิกบริการของลูกค้า (Customer Churn Prediction 🏃♂️💨): จำแนกลูกค้าว่ามีแนวโน้มจะยกเลิกการใช้บริการหรือยังคงใช้งานอยู่ เพื่อช่วยออกแบบกลยุทธ์ในการรักษาลูกค้าได้อย่างมีประสิทธิภาพ
การแบ่งกลุ่มลูกค้า (Customer Segmentation 👥📊): จำแนกลูกค้าออกเป็นกลุ่ม เช่น ลูกค้าระดับพรีเมียม ลูกค้าทั่วไป หรือลูกค้าที่มีศักยภาพสูงในการเติบโตทางการตลาด
การพยากรณ์ความภักดีของลูกค้า (Customer Loyalty Prediction 💙🤝): จำแนกว่า ลูกค้าจะกลายเป็นผู้ภักดีต่อแบรนด์ (loyal customer) หรือไม่
ตัวอย่างปัญหา (Example Problems):
การให้คะแนนเครดิต (Credit Scoring 💳📈): จำแนกลูกค้าว่าอยู่ในกลุ่มเสี่ยงสูง (อาจผิดนัดชำระหนี้) หรือกลุ่มเสี่ยงต่ำในการชำระเงินกู้
การตรวจจับการทุจริต (Fraud Detection 🕵️♂️⚠️): จำแนกธุรกรรมว่าอาจเป็นการทุจริตหรือเป็นธุรกรรมปกติ
การประเมินความเสี่ยงด้านประกันภัย (Insurance Risk Assessment 🛡️📉): จำแนกผู้ถือกรมธรรม์ว่าอยู่ในกลุ่มเสี่ยงสูงหรือเสี่ยงต่ำ
ตัวอย่างปัญหา (Example Problems):
การพยากรณ์การตอบสนองต่อแคมเปญ (Campaign Response Prediction 📢✅): จำแนกลูกค้าว่ามีแนวโน้มจะตอบสนองต่อแคมเปญการตลาดหรือไม่ (เช่น คลิกลิงก์ ซื้อสินค้า หรือลงทะเบียนเข้าร่วมกิจกรรม)
การวิเคราะห์อารมณ์ความรู้สึก (Sentiment Analysis 😀😡😐): จำแนกรีวิวหรือความคิดเห็นของลูกค้าว่าเป็นเชิงบวก เชิงลบ หรือเป็นกลาง
ระบบแนะนำสินค้า (Recommendation System 🛒✨): จำแนกหรือคาดการณ์ว่าสินค้าใดที่ลูกค้ามีแนวโน้มจะซื้อมากที่สุด
ตัวอย่างปัญหา (Example Problems):
การบำรุงรักษาเชิงคาดการณ์ (Predictive Maintenance 🏭🛠️): จำแนกสถานะของเครื่องจักรว่ามีแนวโน้มจะเสียในไม่ช้าหรือยังคงทำงานได้ตามปกติ
การจัดลำดับความสำคัญของคำสั่งซื้อ (Order Prioritization 📦⚡): จำแนกคำสั่งซื้อว่าเป็นแบบเร่งด่วน (priority shipping) หรือแบบส่งสินค้าตามปกติ
ตัวอย่างปัญหา (Example Problems):
การพยากรณ์การลาออกของพนักงาน (Employee Attrition Prediction 🧑💼🚪): จำแนกว่าพนักงานมีแนวโน้มจะลาออกจากองค์กรหรือยังคงทำงานต่อ
การประเมินศักยภาพของพนักงาน (Employee Potential Assessment 🌟📊): จำแนกพนักงานตามระดับศักยภาพ เช่น กลุ่มศักยภาพสูง (High-potential / Rising Stars) หรือกลุ่มที่ควรได้รับการพัฒนาทักษะเพิ่มเติม (Needs Skill Development)
ตัวอย่างปัญหา (Example Problems):
การวิเคราะห์สภาพคล่องทางการเงิน (Liquidity Analysis 💧🏦): จำแนกบริษัทว่าอยู่ในสถานะที่มีสภาพคล่องทางการเงินดี (good liquidity) หรือไม่
การจำแนกพอร์ตการลงทุน (Portfolio Classification 📊💼): จำแนกพอร์ตการลงทุนตามระดับความเสี่ยง เช่น ความเสี่ยงสูง (high risk) ความเสี่ยงปานกลาง (medium risk) หรือความเสี่ยงต่ำ (low risk)
ตัวอย่างปัญหา (Example Problems):
การพยากรณ์การซื้อสินค้า (Purchase Prediction 🛍️🤔): จำแนกว่าลูกค้ามีแนวโน้มจะซื้อสินค้าประเภทใดมากที่สุด
การจัดการสินค้าคงคลัง (Inventory Management 📦📈): จำแนกว่าสินค้าใดเป็นสินค้าขายดี (high-demand) หรือสินค้าที่มีความต้องการต่ำ (low-demand)
ระบบแนะนำสินค้า (Product Recommendation 🛒🔗): จำแนกว่าสินค้าใดที่ลูกค้ามีแนวโน้มจะซื้อมาพร้อมกัน เพื่อใช้ในการทำ cross-selling หรือ up-selling
ตัวอย่างปัญหา (Example Problems):
การวินิจฉัยโรค (Disease Diagnosis 🧬🩺): จำแนกผู้ป่วยว่าอยู่ในกลุ่มเสี่ยงต่อโรคบางชนิด (เช่น มะเร็ง เบาหวาน) หรืออยู่ในกลุ่มสุขภาพดี
การพยากรณ์การกลับมารักษาซ้ำ (Readmission Prediction 🏥🔄): จำแนกว่า ผู้ป่วยมีแนวโน้มที่จะกลับเข้ารักษาในโรงพยาบาลอีกครั้งหรือไม่
การจัดระดับความเสี่ยงของผู้ป่วย (Risk Stratification ⚕️📊): จำแนกผู้ป่วยตามระดับความรุนแรงของโรค เพื่อจัดลำดับความสำคัญในการดูแลรักษา
ตัวอย่างปัญหา (Example Problems):
การตรวจจับมัลแวร์ (Malware Detection 🦠💻): จำแนกซอฟต์แวร์ว่าเป็นมัลแวร์ (malware) หรือไม่
การตรวจจับอีเมลขยะ (Spam Detection 📧🚫): จำแนกว่าอีเมลเป็นสแปมหรือเป็นอีเมลปกติ
การจำแนกข้อผิดพลาดของระบบ (Error Classification ⚠️🛠️): จำแนกข้อผิดพลาดของระบบว่าเกิดจากฮาร์ดแวร์หรือซอฟต์แวร์ เพื่อช่วยในการวิเคราะห์และแก้ไขปัญหาได้ตรงจุด
แบบจำลองทั้งสองนี้มักใช้สำหรับ ปัญหาการจำแนกประเภท (classification problems) แต่มีความแตกต่างกันทั้งในด้าน หลักการทำงาน และ การตีความผลลัพธ์ ดังนี้:
Logistic Regression Equation
\[ Pr(y=1|x) = \frac{1}{1 + e^{-(\beta_0 + \beta_1x_1 + \beta_2x_2 + \cdots + \beta_nx_n)}} \]
หลักการทำงาน (How it works)
แบบจำลอง Logistic Regression ใช้สมการเชิงเส้นทางคณิตศาสตร์ในการทำนาย ความน่าจะเป็น (probability) ของการอยู่ในแต่ละกลุ่ม
จากนั้นใช้ฟังก์ชัน โลจิสติก (logistic หรือ sigmoid function) เพื่อแปลงค่าที่ได้ให้อยู่ระหว่าง 0 ถึง 1
การตีความผลลัพธ์: หากค่าความน่าจะเป็นมากกว่า 0.5 (หรือค่าขอบที่กำหนดไว้เอง) โมเดลจะจำแนกข้อมูลนั้นเป็น กลุ่มที่ 1 (class 1) แต่ถ้าน้อยกว่าหรือเท่ากับ 0.5 จะถูกจัดเป็น กลุ่มที่ 0 (class 0)
ข้อดี (Advantages)
เหมาะสำหรับกรณีที่มีความสัมพันธ์เชิงเส้นระหว่างตัวแปรอิสระ (\(x\)) และค่า log-odds ของผลลัพธ์
ผลลัพธ์สามารถตีความได้ง่าย (เช่น ค่าสัมประสิทธิ์บอกได้ทั้ง ทิศทาง และ ขนาดของอิทธิพล ของแต่ละตัวแปร)
ข้อเสีย (Disadvantages)
ไม่สามารถจับความสัมพันธ์ที่ซับซ้อนหรือไม่เชิงเส้นได้
มีความไวต่อค่าผิดปกติ (outliers) ซึ่งอาจทำให้ผลลัพธ์ของโมเดลบิดเบือนไป
หลักการทำงาน
แบบจำลอง Decision Tree ใช้วิธี แบ่งข้อมูลแบบวนซ้ำ (recursive partitioning) เพื่อแบ่งข้อมูลออกเป็นกลุ่มย่อย ๆ อย่างต่อเนื่อง จนได้โครงสร้างที่มีลักษณะคล้ายต้นไม้
ในแต่ละโหนด (node) จะเลือกตัวแปรและเกณฑ์การแบ่งข้อมูลที่เหมาะสมที่สุด (เช่น Gini Index หรือ Entropy) เพื่อให้การจำแนกข้อมูลมีประสิทธิภาพสูงสุด
โหนดปลายทาง (leaf nodes) จะแทนกลุ่มผลลัพธ์สุดท้ายของข้อมูลแต่ละชุด
ข้อดี (Advantages)
เข้าใจง่ายและตีความได้ชัดเจน (โครงสร้างของต้นไม้แสดงกฎการจำแนกประเภทอย่างเป็นลำดับขั้น)
สามารถจับความสัมพันธ์แบบไม่เชิงเส้นได้อย่างมีประสิทธิภาพ
ใช้งานได้ดีทั้งกับข้อมูลเชิงตัวเลขและข้อมูลเชิงหมวดหมู่
ข้อเสีย (Disadvantages)
มีแนวโน้มที่จะเกิด overfitting หากต้นไม้มีความลึกมากเกินไป
ไม่ทนต่อข้อมูลที่มี สัญญาณรบกวนสูง (noisy data) ซึ่งอาจทำให้ผลการจำแนกไม่เสถียร
| คุณลักษณะ (Feature) | Logistic Regression | Decision Tree |
|---|---|---|
| ความซับซ้อนของความสัมพันธ์ | เหมาะสำหรับความสัมพันธ์เชิงเส้น | สามารถจับความสัมพันธ์ที่ไม่เชิงเส้นได้ |
| ความสามารถในการตีความ (Interpretability) | ตีความได้ง่าย (จากค่าสัมประสิทธิ์) | ตีความได้ง่าย (จากโครงสร้างของต้นไม้) |
| ความไวต่อค่าผิดปกติ (Sensitivity to outliers) | สูง | ต่ำ |
| ความเสี่ยงต่อการ overfitting | ต่ำ | สูง (หากไม่จำกัดความลึกของต้นไม้) |
| การรับมือกับข้อมูลที่มีสัญญาณรบกวน (Handling of noisy data) | ต่ำ | ปานกลาง |
การตัดสินใจ (Decision) หมายถึง การทดสอบคุณลักษณะ (feature test) เพื่อช่วยแยกข้อมูลออกเป็นกลุ่ม (classes) ที่แตกต่างกันได้อย่างมีประสิทธิภาพ
ตัวอย่าง: ในชุดข้อมูล Iris dataset คำถามการตัดสินใจอาจเป็น “Petal.Length ≤ 2.45?”
แต่ละการตัดสินใจจะถูกเลือกให้สามารถ เพิ่มความบริสุทธิ์ของกลุ่ม (maximize class purity) โดยใช้เกณฑ์วัด เช่น Gini Index, Entropy / Information Gain, หรือ Misclassification Error
Components of a Classification Tree
โหนดราก (Root Node)
โหนดการตัดสินใจ (Decision Nodes)
กิ่งเชื่อม (Branches)
โหนดปลายทาง (Leaf Nodes / Terminal Nodes)
สรุป (Summary)
Root Node → จุดเริ่มต้นของต้นไม้ (แสดงชุดข้อมูลทั้งหมด)
Decision Nodes → โหนดภายในที่ใช้ทดสอบคุณลักษณะ (feature tests) เพื่อแบ่งข้อมูล
Branches → เส้นทางของการตัดสินใจ (Yes/No) ระหว่างโหนดต่าง ๆ
Leaf Nodes → ผลลัพธ์สุดท้ายของการจำแนกประเภท (final classification output)
สมมติว่าเราต้องการสร้างแบบจำลอง Logistic Regression เพื่อพยากรณ์ว่า ลูกค้าจะตัดสินใจซื้อสินค้าหรือไม่ (Buy = Yes/No) โดยใช้ข้อมูล เช่น Age, Income และ Gender
ตัวแปรที่ใช้ในแบบจำลอง:
Age: อายุของลูกค้าIncome: รายได้ต่อปีของลูกค้าGender: เพศของลูกค้า (ชาย/หญิง)Buy: การตัดสินใจซื้อสินค้า (ไม่ซื้อ/ซื้อ)แบบจำลองโลจิสติกสามารถเขียนได้ในรูปสมการพื้นฐานดังนี้:
\[ \begin{aligned} \text{Logit}(P) =& \beta_0 + \beta_1 \cdot \text{Age} + \beta_2 \cdot \text{Income}\\ &+ \beta_3 \cdot \text{GenderMale} \end{aligned} \]
\(\text{Logit}(P)\) คือค่าลอการิทึมของอัตราส่วนโอกาส (logarithm of the odds):
\[ \text{Logit}(P) = \ln\left(\frac{P}{1-P}\right) \]
โดยที่ \(P\) คือความน่าจะเป็นที่ผลลัพธ์เป็น “Yes” เช่น \(P(\text{Buy} = \text{Yes})\) — ความน่าจะเป็นที่ลูกค้าจะตัดสินใจซื้อสินค้า
Gender โดยกำหนดให้ “Male” = 1 และ “Female” = 0สร้างแบบจำลองโลจิสติกรีเกรสชัน (Build a Logistic Regression Model)
แบบจำลองนี้จะใช้ในการพยากรณ์ ว่าลูกค้าจะตัดสินใจซื้อสินค้าหรือไม่ (Buy = Yes/No) โดยอาศัยตัวแปร Age, Income, และ Gender เป็นตัวทำนาย (predictors)
การตีความค่าสัมประสิทธิ์ (Interpreting the Coefficients)
Intercept = -0.6951 ค่า Intercept หมายถึงค่า log-odds ของการซื้อสินค้าเมื่อค่าของตัวแปรทั้งหมดเป็นศูนย์ (เช่น Age = 0, Income = 0, และ Gender = Female) อย่างไรก็ตาม ค่านี้ มักไม่มีความหมายเชิงธุรกิจโดยตรง
Age = 0.002941 หมายความว่า เมื่ออายุเพิ่มขึ้น 1 ปี ค่า odds ของการซื้อลสินค้า (Buy = 1) จะเปลี่ยนไปตามค่า Odds Ratio:
\[e^{0.002941} \approx 1.0029\]
หรือเพิ่มขึ้นเพียงประมาณ 0.3% ซึ่งถือว่า ไม่มีนัยสำคัญทางสถิติ (p-value = 0.792)
Income = -8.422e-07 หมายความว่า เมื่อรายได้เพิ่มขึ้น 1 หน่วย (เช่น 1 ดอลลาร์) ค่า odds ของการซื้อสินค้าจะลดลงเล็กน้อย แต่ผลกระทบนี้ มีค่าน้อยมากจนแทบไม่มีความหมายในทางปฏิบัติ และค่า p-value ที่สูงมาก (0.898) ชี้ว่า รายได้ไม่มีผลต่อการตัดสินใจซื้อสินค้า
GenderMale = 0.1274 หมายความว่า เพศชายมีแนวโน้มที่จะซื้อมากกว่าเพศหญิงเล็กน้อย โดยมีค่า Odds Ratio เท่ากับ
\[e^{0.1274} \approx 1.136\]
หรือเพิ่มขึ้นประมาณ 13.6% ในความน่าจะเป็นที่จะซื้อสินค้า อย่างไรก็ตาม ค่า p-value = 0.665 สูงมาก แสดงว่า ไม่มีหลักฐานทางสถิติที่ยืนยันว่าความแตกต่างนี้มีนัยสำคัญจริง
เราต้องการพยากรณ์ว่าลูกค้าจะ สมัครบัตรเครดิตหรือไม่ โดยใช้ตัวแปรต่อไปนี้เป็นตัวทำนาย:
Spending — ระดับการใช้จ่ายของลูกค้า
CreditScore — คะแนนเครดิต
Married (Marital Status) — สถานะสมรส (แต่งงาน/โสด)
สมการโลจิสติกรีเกรสชัน (Logistic Regression Equation)
จากผลสรุปของแบบจำลอง สมการอาจเขียนได้ดังนี้:
\[ \begin{aligned} \text{Logit}(P) =&\beta_0 + \beta_1 \cdot \text{Spending} + \beta_2 \cdot \text{CreditScore} \\ &+ \beta_3 \cdot \text{MarriedSingle} \\&+ \beta_4 \cdot \text{MarriedDivorced} \end{aligned} \]
Call:
glm(formula = Subscribed ~ Spending + CreditScore + Married,
family = binomial, data = data2)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 6.154e-01 6.029e-01 1.021 0.3074
Spending -1.718e-05 4.713e-05 -0.364 0.7155
CreditScore -1.370e-03 7.682e-04 -1.783 0.0745 .
MarriedMarried -4.316e-01 3.684e-01 -1.171 0.2414
MarriedSingle -5.690e-01 3.724e-01 -1.528 0.1266
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 381.91 on 299 degrees of freedom
Residual deviance: 375.85 on 295 degrees of freedom
AIC: 385.85
Number of Fisher Scoring iterations: 4
การตีความผลลัพธ์
(1) ค่าสัมประสิทธิ์ (Coefficients / Estimates)
Intercept = 0.6154
Subscribed = 1) เมื่อค่า Spending และ CreditScore เท่ากับ 0 และลูกค้าอยู่ในกลุ่มอ้างอิง (Divorced)Spending = -1.718e-05 (~0)
CreditScore = -0.00137
MarriedMarried = -0.4316
MarriedSingle = -0.5690
Log-Odds
Log-Odds คือผลลัพธ์ที่ได้จากแบบจำลอง Logistic Regression ซึ่งคำนวณจากสมการดังนี้:
\[ \begin{aligned} \log\left(\frac{Pr(\text{Event})}{1 - Pr(\text{Event})}\right) &= \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \dots + \beta_n X_n \end{aligned} \]
1. ความหมายของ Log-Odds
Log-Odds ใช้วัด แนวโน้ม (likelihood) ของการเกิดเหตุการณ์ที่สนใจ (Event = 1)
เมื่อ ค่า Log-Odds เพิ่มขึ้น → ความน่าจะเป็นของการเกิดเหตุการณ์นั้น เพิ่มขึ้น
เมื่อ ค่า Log-Odds ลดลง → ความน่าจะเป็นของการเกิดเหตุการณ์นั้น ลดลง
หาก Log-Odds = 0 หมายถึง เหตุการณ์และไม่เกิดเหตุการณ์มีโอกาสเท่ากัน (Pr(Event) = 0.5)
2. การแปลง Log-Odds ให้เป็นความน่าจะเป็น (Probability)
เนื่องจากค่า Log-Odds ไม่เข้าใจง่ายในทางปฏิบัติ เราจึงมัก แปลงเป็นค่าความน่าจะเป็น ด้วยสูตร:
\[ Pr(\text{Event}) = \frac{e^{\text{Log-Odds}}}{1 + e^{\text{Log-Odds}}} \]
หรือในรูปทั่วไป:
\[ Pr(\text{Event}) = \frac{1}{1 + e^{-(\beta_0 + \beta_1 X_1 + \dots + \beta_n X_n)}} \]
ตัวอย่างสั้น ๆ: ถ้า Log-Odds = 0 → \(Pr(\text{Event}) = 0.5\) ถ้า Log-Odds = 2 → \(Pr(\text{Event}) \approx 0.88\) ถ้า Log-Odds = -2 → \(Pr(\text{Event}) \approx 0.12\)
ในแบบจำลอง โลจิสติกรีเกรสชัน (Logistic Regression) ค่าค่าสัมประสิทธิ์ (Coefficients หรือ Estimates) แทนการเปลี่ยนแปลงของ Log-Odds เมื่อค่าตัวแปรอิสระ (\(X\)) เพิ่มขึ้น 1 หน่วย
เพื่อให้ตีความได้ง่ายขึ้น เรามักแปลงค่า Log-Odds เป็น Odds Ratio (OR) ด้วยสูตร:
\[ \text{Odds Ratio} = e^{\beta} \]
ถ้า \(\beta = 0.7\) → \(e^{0.7} \approx 2.01\) หมายถึง ตัวแปรนั้น เพิ่มโอกาสเกิดเหตุการณ์ประมาณ 2 เท่า (หรือ 101% มากขึ้น)
ถ้า \(\beta = -0.7\) → \(e^{-0.7} \approx 0.50\) หมายถึง ตัวแปรนั้น ลดโอกาสเกิดเหตุการณ์ลงประมาณ 50%
Log-Odds แสดงแนวโน้มของเหตุการณ์ว่าจะมีแนวโน้มเกิดมากหรือน้อย
Log-Odds สามารถแปลงเป็น Probability ได้ด้วยสมการลอจิสติก
ถ้า Log-Odds เป็นบวก → ความน่าจะเป็นสูงขึ้น ถ้า Log-Odds เป็นลบ → ความน่าจะเป็นต่ำลง
การแปลงเป็น Odds Ratio (OR) ช่วยให้ตีความเชิงธุรกิจได้ง่ายขึ้น:
Logistic Regression
Decision Tree
Demšar, J., Zupan, B., Leban, G., & Curk, T. (2013). Orange: Data Mining Toolbox in Python. Journal of Machine Learning Research, 14(1), 2349–2353. Retrieved from http://jmlr.org/papers/v14/demsar13a.html
Hosmer, D. W., Lemeshow, S., & Sturdivant, R. X. (2013). Applied Logistic Regression (3rd ed.). Hoboken, NJ: Wiley. https://doi.org/10.1002/9781118548387
Quinlan, J. R. (1996). Improved use of continuous attributes in C4.5. Journal of Artificial Intelligence Research, 4, 77–90. https://doi.org/10.1613/jair.279
Orange Data Mining Team. (2022). Classification with Logistic Regression and Decision Trees. Orange Data Mining Blog. Retrieved from https://orangedatamining.com/blog