[Data Scientist Model EP.09] Ensemble Method “ขั้นกว่าของ Decision Tree ?” Part1

Pasith Thanapatpisarn
2 min readMar 26, 2022

--

List ของตอนที่แล้ว (Data Science Model List)

จากตอนที่แล้ว เราได้รู้จักกับ Decision Tree ว่ามันคือโมเดลที่แสดงถึงเส้นทางการตัดสินใจในรูปแบบของต้นไม้ ที่มีการแตกกิ่งการตัดสินใจออกไปเรื่อยๆ จนกว่าผลการตัดสินใจหรือการทำนายเกิดความแม่นยำสูงสุด

แต่ในความเป็นจริงแล้ว การตัดสินใจของคนเราก็ไม่ได้เป็นไปอย่างที่ Decision Tree ทำนายผล เพราะการตัดสินใจที่มาจากการทำนายเพียงครั้งเดียวหรือมาจากคนๆเดียว ก็อาจจะไม่สามารถบ่งบอกพฤติกรรมการตัดสินใจของคนส่วนใหญ่ได้

เช่น กรณีการตัดสินใจไปเที่ยวในตอนที่แล้วของนาย A

ตัวอย่างโมเดลการตัดสินใจไปเที่ยวของนาย A

หากว่ากลุ่มเพื่อนของนาย A จำนวน 5 คนจะมาตัดสินใจว่าจะไปเที่ยวหรือไม่จากโมเดลของนาย A แน่นอนว่าทั้ง 5 คนจะต้องมีคนที่ไม่พอใจกับการตัดสินใจครั้งนี้อย่างมากแน่นอน

“แล้วเราจะสามารถแก้ไขปัญหานี้ได้อย่างไร ?”

คำตอบก็คือจะต้องนำโมเดลการตัดสินใจของเพื่อนของนาย A ทุกคนมาช่วยกันตัดสินใจ เพื่อให้ทุกคนแฮปปี้กับผลลัพธ์ที่เกิดขึ้นนั่นเอง

ปัญหาพื้นฐานที่เกิดขึ้นจาก Decision Tree คือสามารถทำนายข้อมูลชุดฝึกได้อย่างแม่นยำ แต่ไม่ค่อยทำนายชุดข้อมูลใหม่ได้ดีเท่าไหร่ (อย่างการใช้โมเดลของนาย A มาทำนายเพื่อนของนาย A ทุกคน) ดังนั้นคอมพิวเตอร์เองก็สามารถสร้าง Decision Tree เพื่อที่จะแก้ไขปัญหาดังกล่าวได้เช่นกัน ซึ่งเป็นเทคนิคที่เรียกว่า Ensemble Methods

Ensemble Methods

Ensemble Methods ก็คือเทคนิคในการรวบรวมผลลัพธ์ที่ได้จากโมเดลหลายๆแบบ(และหลายๆครั้ง)มาช่วยในการตัดสินใจ เพื่อให้ผลลัพธ์ออกมาเป็นที่น่าพอใจในภาพรวมมากที่สุด (คนส่วนใหญ่เห็นด้วย หรือมีค่า Accuracy ในภาพรวมสูงที่สุดนั่นเอง)

Ensemble Methods สามารถใช้ร่วมกันกับ Decision Tree ได้เนื่องจากโมเดลในการตัดสินใจเรื่องใดเรื่องหนึ่งของแต่ละคนไม่เหมือนกัน เทคนิคนี้จึงถูกนำมาใช้เพื่อรวมการตัดสินใจดังกล่าวให้เป็นการตัดสินใจที่เกิดประสิทธิภาพสูงสุด

และเทคนิค Ensemble Methods เองก็ถูกแบ่งออกเป็น 3 วิธีคือ

  1. Bagging
  2. Random Forest
  3. Boosting

โดยใน EP นี้จะอธิบายวิธีการทำนายของ Ensemble Methods ในแต่ละแบบอย่างคร่าวๆ และจะมาลงลึกถึงทฤษฎี algorithm และการสร้างโมเดลด้วยโปรแกรมคอมพิวเตอร์ของแต่ละวิธีในตอนถัดๆไปของ Series นี้ครับ

Bagging

Bagging ย่อมาจาก Bootstrap Aggregating ซึ่งเป็นเทคนิคในการนำ Decision Tree ที่เกิดจากกลุ่มตัวอย่างแบบสุ่มที่ไม่เหมือนกันในแต่ละแบบ (เราเรียกวิธีการสุ่มว่า Bootstrap) เพื่อนำโมเดลแต่ละอันมาช่วยกันตัดสินใจ (Aggregate) ว่าผลลัพธ์ของ Tree ส่วนใหญ่จะออกมาเป็นอย่างไร

Bagging Example — source

Random Forest

Random Forest ก็คือวิธีการหนึ่งของ Bagging แต่จะมีความแตกต่างกันก็คือ ทุกครั้งที่จะมีการสร้าง node ตัวโมเดลจะสนใจเฉพาะกลุ่มตัวอย่างและตัวแปรที่ถูกสุ่มออกมา ซึ่งจะทำให้โมเดลตัดสินใจได้ยากขึ้น และ Random Forest เองก็เป็น Ensemble Methods ที่คล้ายคลึงกับวิธีการแก้ปัญหาการตัดสินใจไปเที่ยวของเพื่อนนาย A และ Random Forest เองก็เป็นวิธีที่นิยมใช้กันกับ Decision Tree มากที่สุด (แน่นอนแหละ เพราะมันเรียกว่า Forest=ป่า=กลุ่มของต้นไม้ นี่หน่า😆)

Random Forest Example on A Group’s Travel Decision

Boosting

เป็นการสร้างผนวกกับหลักการของ Random Forest ประกอบกับ Optimization ในการเรียนรู้ชุด Random Forest ที่ทำนายผลได้แย่มาพัฒนาผลการทำนายให้แม่นยำยิ่งขึ้น ซึ่งจะทำให้การ Boosting โดยส่วนใหญ่จะทำนายผลได้อย่างแม่นยำกว่า Random Forest แต่เนื่องจากเป็นการเรียนรู้ชุดโมเดลที่ทำนายได้แย่ไปเรื่อยๆ ทำให้ใช้เวลาในการประมวลผลนาน ซึ่งก็ทำให้เทคนิค Boosting มีการพัฒนาประสิทธิภาพทั้งด้านผลลัพธ์และด้านความเร็วในการประมวลผลอยู่ตลอด เช่น AdaBoost XGBoost เป็นต้น

source

ก็ถือว่าหอมปากหอมคอ ได้เรียนรู้พื้นฐานของ Ensemble Methods กันไปแล้วนะครับ ในตอนถัดไปเราจะมารู้จัก Bagging ในเชิงลึกมากยิ่งขึ้น ว่ามันมีขั้นตอนการทำงานอย่างไร ถ้าใครยังสนใจอยู่ก็อย่าพลาดตอนต่อไปของ Data Scientist Model นะครับ 🙏

ถ้าชอบหรือต้องการสอบถามหรือพูดคุยเพิ่มเติม กดไปที่เพจ ดาต้าไส้แห้ง หรือ LinkedIn ข้างล่างเลยจ้า แล้วเรื่องถัดไปจะเป็นเรื่องอะไรก็ขอให้กดติดตามกันไว้ด้วยนะคร้าบ😍

--

--