ยินดีต้อนรับสู่ Regression Trees!

สวัสดีว่าที่นักคณิตศาสตร์ประกันภัยทุกคน! วันนี้เราจะมาเจาะลึกเครื่องมือที่เข้าใจง่ายและเห็นภาพชัดที่สุดตัวหนึ่งในคลังแสงของนักวิทยาศาสตร์ข้อมูล นั่นก็คือ Regression Trees ครับ หากคุณเคยใช้แผนผัง (Flowchart) ในการตัดสินใจอะไรสักอย่าง (เช่น "วันนี้ฉันควรสั่งพิซซ่าดีไหมนะ?") คุณก็เข้าใจพื้นฐานการทำงานของต้นไม้ (Tree) ไปแล้วมากกว่าครึ่ง ในขณะที่ Linear Regression พยายามลากเส้นตรงให้ผ่านข้อมูล แต่ Regression Trees จะใช้วิธีแบ่งข้อมูลออกเป็นกลุ่มย่อยๆ เพื่อทำการพยากรณ์ครับ สิ่งนี้ทำให้มันอธิบายง่าย เห็นภาพสนุก และสำคัญมากสำหรับข้อสอบ Exam SRM

ถ้ารู้สึกกังวลเพราะบทก่อนๆ เจอคณิตศาสตร์หนักๆ มา ไม่ต้องกังวลไปนะครับ! Regression Trees เน้นเรื่องตรรกะและการ "แบ่งกลุ่ม" มากกว่าการคำนวณแคลคูลัสที่ซับซ้อนครับ!


1. Regression Tree คืออะไร?

Regression Tree คือประเภทหนึ่งของ Decision Tree ที่ใช้เมื่อตัวแปรเป้าหมาย (สิ่งที่เราต้องการพยากรณ์) เป็นตัวแปรเชิงปริมาณ (Quantitative/Numerical) เช่น ราคาบ้าน หรือจำนวนเงินเคลมประกัน

คำศัพท์สำคัญ

เพื่อให้พูดจาภาษาเดียวกับผู้เชี่ยวชาญ เรามาทำความรู้จักกับ "ส่วนประกอบ" ของต้นไม้กันก่อนครับ:

  • Root Node (โหนดราก): จุดบนสุดของต้นไม้ที่เป็นจุดเริ่มการแบ่งครั้งแรก ซึ่งจะรวมข้อมูลทั้งหมดไว้ที่จุดนี้
  • Internal Nodes (โหนดภายใน): จุดที่ต้นไม้แตกกิ่งก้านสาขาออกไปตามเงื่อนไข "ใช่/ไม่ใช่" หรือ "จริง/เท็จ"
  • Branches (กิ่ง): เส้นที่เชื่อมต่อระหว่างโหนดต่างๆ
  • Leaf Nodes (โหนดใบ/โหนดปลายทาง): ปลายสุดของกิ่งไม้ ซึ่งเป็นจุดที่เราได้ผลลัพธ์การพยากรณ์สุดท้ายนั่นเอง!

การพยากรณ์ทำได้อย่างไร?

ใน Regression Tree ข้อมูลทุกตัวที่ตกลงไปอยู่ใน Leaf Node เดียวกัน จะได้รับ คำพยากรณ์เดียวกัน ซึ่งค่าพยากรณ์นั้นก็คือ ค่าเฉลี่ย (Mean) ของค่าข้อมูลสอน (Training data) ทั้งหมดที่อยู่ในใบนั้นครับ

ตัวอย่าง: หาก Leaf Node หนึ่งมีบ้าน 3 หลังที่ขายไปในราคา \$200k, \$210k และ \$220k บ้านหลังใหม่ทุกหลังที่ตกอยู่ในใบนี้จะถูกพยากรณ์ว่ามีราคา \$210k

ทบทวนสั้นๆ:
- Regression Tree: พยากรณ์ตัวเลข
- การพยากรณ์: ค่าเฉลี่ยของข้อมูลที่อยู่ในใบนั้น


2. การสร้างต้นไม้: Recursive Binary Splitting

คอมพิวเตอร์ตัดสินใจได้อย่างไรว่าจะแบ่งข้อมูลตรงไหน? มันใช้วิธีที่เรียกว่า Recursive Binary Splitting ครับ มาย่อยศัพท์เท่ๆ เหล่านี้กัน:

  • Binary (ทวิภาค): การแบ่งแต่ละครั้งจะได้กิ่งออกมาแค่ 2 กิ่งเสมอ
  • Recursive (เรียกซ้ำ): กระบวนการจะทำซ้ำไปเรื่อยๆ สำหรับกิ่งใหม่ที่แตกออกมา
  • Greedy (ความโลภ): ในแต่ละขั้นตอน อัลกอริทึมจะเลือกจุดแบ่งที่ดีที่สุดสำหรับ ตอนนี้ทันที โดยไม่มองไปข้างหน้าว่าการเลือกอื่นอาจจะดีกว่าในระยะยาวหรือไม่

คณิตศาสตร์เบื้องหลัง: การลดค่า RSS

เป้าหมายของการแบ่งแต่ละครั้งคือการทำให้กลุ่มที่ได้ "บริสุทธิ์" (Pure) ที่สุดเท่าที่จะเป็นไปได้ เราทำสิ่งนี้โดยการลดค่า Residual Sum of Squares (RSS) ให้เหลือน้อยที่สุด เราต้องการให้จุดข้อมูลในแต่ละกลุ่มมีค่าใกล้เคียงกับค่าเฉลี่ยของกลุ่มนั้นให้มากที่สุด

สูตรสำหรับ RSS ในต้นไม้ที่มี \( J \) ใบ (พื้นที่ \( R_1, R_2, ..., R_J \)) คือ:

\( RSS = \sum_{j=1}^{J} \sum_{i \in R_j} (y_i - \hat{y}_{R_j})^2 \)

โดยที่ \( \hat{y}_{R_j} \) คือค่าเฉลี่ยของข้อมูลสอนที่อยู่ในใบที่ \( j \)

ขั้นตอนการแบ่งแบบทีละขั้น:

  1. เริ่มจากข้อมูลทั้งหมดอยู่ในกลุ่มเดียว
  2. พิจารณาตัวแปรพยากรณ์ \( X_j \) ทุกตัว และจุดแบ่ง \( s \) ทุกจุดที่เป็นไปได้
  3. เลือกตัวแปรและจุดแบ่งที่ทำให้ค่า RSS ต่ำที่สุด
  4. ทำซ้ำกระบวนการนี้สำหรับพื้นที่ทั้งสองที่เกิดขึ้นใหม่

ประเด็นสำคัญ: เรากำลังแบ่งข้อมูลออกเป็นรูปสี่เหลี่ยม (หรือกล่อง) ในพื้นที่ของคุณลักษณะ (Feature space) โดยเราพยายามหาจุดแบ่งที่ลดข้อผิดพลาด (RSS) ได้มากที่สุดในจังหวะนั้นเสมอ


3. ปัญหาของ Overfitting (การเรียนรู้เกินพอดี)

ถ้าเราปล่อยให้ต้นไม้โตไปเรื่อยๆ โดยไม่มีจุดสิ้นสุด ในที่สุดมันจะมีใบหนึ่งใบสำหรับข้อมูลแต่ละจุด! ซึ่งจะทำให้ค่า RSS เป็นศูนย์บนข้อมูลที่ใช้สอน แต่มันจะ แย่มาก ในการพยากรณ์ข้อมูลใหม่! ปรากฏการณ์นี้เรียกว่า Overfitting ครับ

เปรียบเทียบให้เห็นภาพ: ลองนึกถึงการที่คุณท่องจำโจทย์และคำตอบทุกข้อในแนวข้อสอบแทนที่จะเข้าใจเนื้อหา คุณอาจจะได้คะแนนเต็มในแนวข้อสอบ แต่คุณจะสอบตกในสนามจริงเพราะคุณไม่สามารถจัดการกับโจทย์ใหม่ๆ ที่ไม่เคยเห็นมาก่อนได้!

เพื่อป้องกันปัญหานี้ เรามีสองทางเลือก:
1. หยุดการเติบโตของต้นไม้ตั้งแต่เนิ่นๆ (ซึ่งมักจะได้ผลไม่ค่อยดีนัก)
2. การตัดแต่งกิ่ง (Pruning) (เป็นวิธีที่นิยมมากกว่า)


4. การตัดแต่งกิ่ง (Tree Pruning) และ Cost-Complexity Pruning

การตัดแต่งกิ่งหมายถึงการ "ตัด" กิ่งก้านของต้นไม้ใหญ่ทิ้ง เพื่อให้เหลือ ต้นไม้ย่อย (Subtree) ที่มีขนาดเล็กกว่าแต่มีประสิทธิภาพในการพยากรณ์ข้อมูลใหม่ได้ดีกว่า แต่เราจะรู้ได้อย่างไรว่าต้องตัดกิ่งไหน?

Cost-Complexity Pruning (หรือ Weakest Link Pruning)

เราใช้พารามิเตอร์ที่เรียกว่า \( \alpha \) (Alpha) เราต้องการลดค่าคะแนนที่สร้างสมดุลระหว่างความแม่นยำของต้นไม้และความซับซ้อนของต้นไม้:

\( \sum_{m=1}^{|T|} \sum_{i: x_i \in R_m} (y_i - \hat{y}_{R_m})^2 + \alpha |T| \)

ลองทำให้ง่ายขึ้น: คะแนนรวม = RSS + (Alpha × จำนวนใบ)

  • RSS: วัดว่าต้นไม้ฟิตกับข้อมูลสอนได้ดีแค่ไหน (ข้อผิดพลาด)
  • \( |T| \): จำนวนของ Leaf nodes (ความซับซ้อน)
  • \( \alpha \): "ค่าปรับ" สำหรับการมีต้นไม้ที่ซับซ้อนเกินไป

การทำงานของ \( \alpha \):
- ถ้า \( \alpha = 0 \): ค่าปรับเป็นศูนย์ เราจะได้ต้นไม้ใหญ่ที่ Overfit
- เมื่อ \( \alpha \) เพิ่มขึ้น: ค่าปรับสำหรับการมีจำนวนใบก็จะมากขึ้น เราจึง "ตัดแต่ง" ต้นไม้ให้เล็กลง
- เรามักจะหาค่า \( \alpha \) ที่เหมาะสมที่สุดโดยใช้ K-fold Cross-Validation

รู้หรือไม่? วิธีนี้คล้ายกับ Lasso Regression มาก! เพราะทั้งคู่ใช้เทอมค่าปรับเพื่อทำให้โมเดลเรียบง่ายและป้องกันปัญหา Overfitting


5. ข้อดีและข้อเสียของ Regression Trees

สำหรับข้อสอบ SRM สิ่งสำคัญคือต้องรู้ว่าทำไมเราถึง (หรือไม่) เลือกใช้ต้นไม้มากกว่าโมเดลเส้นตรง

ข้อดี (จุดเด่น):

  • อธิบายง่าย: คุณสามารถโชว์แผนผังต้นไม้ให้คนที่ไม่ใช่นักคณิตศาสตร์ประกันภัยดู แล้วพวกเขาก็จะเข้าใจมันได้ทันที
  • รองรับความสัมพันธ์ที่ไม่เป็นเส้นตรง: ต้นไม้ไม่ได้สมมติว่าความสัมพันธ์ต้องเป็นเส้นตรง
  • ไม่ต้องใช้ Dummy Variables: ต้นไม้จัดการกับตัวแปรเชิงกลุ่ม (เช่น "แดง", "น้ำเงิน", "เขียว") ได้ตามธรรมชาติโดยไม่ต้องแปลงข้อมูลพิเศษ
  • เหมือนการตัดสินใจของมนุษย์: เราคิดแบบ "ถ้า...แล้ว..." เป็นธรรมชาติอยู่แล้ว

ข้อเสีย (ความท้าทาย):

  • ความแม่นยำในการพยากรณ์น้อยกว่า: ต้นไม้เดี่ยวๆ มักไม่แม่นยำเท่า Linear Regression หรือวิธีที่ซับซ้อนกว่า (เช่น Random Forests)
  • ความแปรปรวนสูง (ไม่เสถียร): การเปลี่ยนข้อมูลเพียงเล็กน้อยอาจส่งผลให้ได้ต้นไม้ที่หน้าตาต่างจากเดิมโดยสิ้นเชิง
  • ข้อจำกัดแบบ "กล่อง": เนื่องจากการแบ่งเป็นมุมฉากกับแกนเสมอ ต้นไม้จึงมีปัญหาในการสร้างแบบจำลองความสัมพันธ์ที่เป็นเส้นโค้งสมูทหรือเส้นทะแยงจริงๆ

เทคนิคช่วยจำ: ให้คิดว่าต้นไม้เป็นเหมือน "ร่างแรก (Rough Draft)" มันเยี่ยมมากสำหรับการหาไอเดียคร่าวๆ และอธิบายเรื่องยากให้ง่ายขึ้น แต่สำหรับงานพยากรณ์ที่เดิมพันสูง คุณอาจต้องใช้สิ่งที่ดูประณีตกว่าอย่าง "ร่างสุดท้าย" (เช่น Random Forests หรือ Boosting)


6. สรุปและเคล็ดลับสุดท้าย

ข้อผิดพลาดที่พบบ่อย: ในข้อสอบ อย่าจำสับสนระหว่าง Regression Trees กับ Classification Trees
- Regression: พยากรณ์ตัวเลข ใช้ค่า RSS, ผลลัพธ์คือ ค่าเฉลี่ย (Mean)
- Classification: พยากรณ์หมวดหมู่ ใช้ Gini Index หรือ Entropy, ผลลัพธ์คือ ฐานนิยม (Mode) (หมวดหมู่ที่พบบ่อยที่สุด)

ประเด็นสำคัญที่ต้องจำ:

1. ต้นไม้ใช้ Recursive Binary Splitting เพื่อลด RSS ให้ต่ำที่สุด
2. เป็นแบบ Top-Down (จากบนลงล่าง) และ Greedy (เน้นความโลภในแต่ละก้าว)
3. การตัดแต่งกิ่ง (Pruning) โดยใช้ Cost-Complexity (ใช้ \( \alpha \)) ช่วยป้องกัน Overfitting
4. ต้นไม้มีความแปรปรวนสูง—เปลี่ยนไปได้ง่ายตามข้อมูลใหม่—แต่มีความสามารถในการตีความได้สูงมาก

ไม่ต้องกังวลถ้าตอนแรกจะดูยาก! แค่จำไว้ว่าหัวใจของมันก็คือการตั้งคำถาม "ใช่/ไม่ใช่" ไปเรื่อยๆ เพื่อจัดกลุ่มตัวเลขที่คล้ายกันไว้ด้วยกัน หมั่นทำโจทย์บ่อยๆ แล้วคุณจะกลายเป็นเซียนเรื่องต้นไม้ในเวลาไม่นานครับ!