[Data Scientist Model EP.09] Ensemble Method “ขั้นกว่าของ Decision Tree ?” Part1
List ของตอนที่แล้ว (Data Science Model List)
จากตอนที่แล้ว เราได้รู้จักกับ Decision Tree ว่ามันคือโมเดลที่แสดงถึงเส้นทางการตัดสินใจในรูปแบบของต้นไม้ ที่มีการแตกกิ่งการตัดสินใจออกไปเรื่อยๆ จนกว่าผลการตัดสินใจหรือการทำนายเกิดความแม่นยำสูงสุด
แต่ในความเป็นจริงแล้ว การตัดสินใจของคนเราก็ไม่ได้เป็นไปอย่างที่ Decision Tree ทำนายผล เพราะการตัดสินใจที่มาจากการทำนายเพียงครั้งเดียวหรือมาจากคนๆเดียว ก็อาจจะไม่สามารถบ่งบอกพฤติกรรมการตัดสินใจของคนส่วนใหญ่ได้
เช่น กรณีการตัดสินใจไปเที่ยวในตอนที่แล้วของนาย 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 วิธีคือ
โดยใน EP นี้จะอธิบายวิธีการทำนายของ Ensemble Methods ในแต่ละแบบอย่างคร่าวๆ และจะมาลงลึกถึงทฤษฎี algorithm และการสร้างโมเดลด้วยโปรแกรมคอมพิวเตอร์ของแต่ละวิธีในตอนถัดๆไปของ Series นี้ครับ
Bagging
Bagging ย่อมาจาก Bootstrap Aggregating ซึ่งเป็นเทคนิคในการนำ Decision Tree ที่เกิดจากกลุ่มตัวอย่างแบบสุ่มที่ไม่เหมือนกันในแต่ละแบบ (เราเรียกวิธีการสุ่มว่า Bootstrap) เพื่อนำโมเดลแต่ละอันมาช่วยกันตัดสินใจ (Aggregate) ว่าผลลัพธ์ของ Tree ส่วนใหญ่จะออกมาเป็นอย่างไร
Random Forest
Random Forest ก็คือวิธีการหนึ่งของ Bagging แต่จะมีความแตกต่างกันก็คือ ทุกครั้งที่จะมีการสร้าง node ตัวโมเดลจะสนใจเฉพาะกลุ่มตัวอย่างและตัวแปรที่ถูกสุ่มออกมา ซึ่งจะทำให้โมเดลตัดสินใจได้ยากขึ้น และ Random Forest เองก็เป็น Ensemble Methods ที่คล้ายคลึงกับวิธีการแก้ปัญหาการตัดสินใจไปเที่ยวของเพื่อนนาย A และ Random Forest เองก็เป็นวิธีที่นิยมใช้กันกับ Decision Tree มากที่สุด (แน่นอนแหละ เพราะมันเรียกว่า Forest=ป่า=กลุ่มของต้นไม้ นี่หน่า😆)
Boosting
เป็นการสร้างผนวกกับหลักการของ Random Forest ประกอบกับ Optimization ในการเรียนรู้ชุด Random Forest ที่ทำนายผลได้แย่มาพัฒนาผลการทำนายให้แม่นยำยิ่งขึ้น ซึ่งจะทำให้การ Boosting โดยส่วนใหญ่จะทำนายผลได้อย่างแม่นยำกว่า Random Forest แต่เนื่องจากเป็นการเรียนรู้ชุดโมเดลที่ทำนายได้แย่ไปเรื่อยๆ ทำให้ใช้เวลาในการประมวลผลนาน ซึ่งก็ทำให้เทคนิค Boosting มีการพัฒนาประสิทธิภาพทั้งด้านผลลัพธ์และด้านความเร็วในการประมวลผลอยู่ตลอด เช่น AdaBoost XGBoost เป็นต้น
ก็ถือว่าหอมปากหอมคอ ได้เรียนรู้พื้นฐานของ Ensemble Methods กันไปแล้วนะครับ ในตอนถัดไปเราจะมารู้จัก Bagging ในเชิงลึกมากยิ่งขึ้น ว่ามันมีขั้นตอนการทำงานอย่างไร ถ้าใครยังสนใจอยู่ก็อย่าพลาดตอนต่อไปของ Data Scientist Model นะครับ 🙏
ถ้าชอบหรือต้องการสอบถามหรือพูดคุยเพิ่มเติม กดไปที่เพจ ดาต้าไส้แห้ง หรือ LinkedIn ข้างล่างเลยจ้า แล้วเรื่องถัดไปจะเป็นเรื่องอะไรก็ขอให้กดติดตามกันไว้ด้วยนะคร้าบ😍