Ensemble Learning Method

cway investment
cw-quantlab
Published in
2 min readOct 6, 2018

Ensemble Learning เป็นเทคนิคที่ มีการนำมาใช้มากในการพัฒนา learning model ใน machine learning โดยเฉพาะเป้าหมายการเพิ่มประสิทธิภาพการทำงานของโมเดล

ผมเรียนรู้เทคนิคนี้จากครอส machine learning ของ Dr. Andrew Ng เริ่มแรกตอนนั้นผมทำ Decision tree mode การปรับ error เป็นเรื่องจำเป็นมากทำให้เอา Ensemble Learningมาใช้ เช่นเดียวกันในกลุ่มของ Kaggle การแข่งขันเกือบทุกรายการผู้ชนะมักมีการนำเอา Ensemble Learning มาใช้เพิ่มประสิทธิภาพของโมเดล

Ensemble Learning อธิบายเป็นภาษาง่ายๆ(จริงๆมันมีวิชาการรองรับลองอ่านได้จาก paper ด้านล่าง) ก็คือ การรวมของโมเดลการเรียนรู้ที่หลากหลาย มีความแตกต่างและมีอิสระต่อกัน เข้าด้วยกัน เพื่อเพิ่มประสิทธิภาพของโมเดล

Error ในงาน Ensemble Learning เป็นสิ่งที่ผู้พัฒนาต้องให้ความสำคัญ การปรับ trade-off management ระหว่าง Bias และ Variance ก็เป็นสิ่งสำคัญ เพื่อทำให้ผลลัพธ์ของโมเดลออกมา มีความสมบูรณ์มากที่สุด

เทคนิคยอดนิยมของ Ensemble Learning ได้แก่

- Bagging

สร้างหลายชุดแต่ประเภทเดียวกัน เพื่อทำการทดสอบกับ subset ของ data ที่แบ่งออกจาก data set รวม จากนั้นนำผลการ prediction ของโมเดลต่างๆมารวมกัน ตัวอย่าง learning algorithm กลุ่มนี้เช่น Decision Trees, Random Forest และ Extra Trees.

- Boosting.

สร้างหลายชุดแต่ประเภทเดียวกัน ทำการทดสอบกับข้อมูลชุดเดียวกัน โดยทำการทดสอบแบบ iteration วนลูป ปรับค่าน้ำหนัก เพื่อทำให้ ผลการ prediction ของโมเดลดีขึ้นปรับปรุงเรื่อยๆ วิธีนี้ค่อนข้างเป็นที่นิยม เพราะหยืดหยุ่นใช้ได้กับทุก learning algorithm สามารถปรับลด bias error ของโมเดลได้ดี ตัวอย่าง learning algorithm กลุ่มนี้เช่น AdaBoost และ Stochastic Gradient Boosting

- Voting.

สร้างโมเดลหลากหลาย เช่น Decision Tree, SVM , K-Nearest Neighbors จากนั้นรันบน data set แบบเดียวกัน เพื่อดูผลการ prediction สุดท้ายของแต่ละโมเดล ใช้การโหวตผลที่เหมือนกัน คล้ายกัน เป็นคำตอบสุดท้าย

— — — — — — — -

ตัวอย่าง ทำการวิเคราะห์ข้อมูลด้วย decision tree ในการทำ regression analysis สำหรับเพื่อวิเคราะห์การเปลี่ยนแปลง การทดสอบนี้ ทดลองใช้ AdaBoost Ensemble method มาเปรียบเทียบกับ decision tree ปกติ ซึ่งจากภาพจะเห็นว่า AdaBoost เพิ่มความถูกต้อง และทำให้ประสิทธิ มากขึ้น

โดย iteration รอบที่เพิ่มมากขึ้น เกิดการคำนวณซ้ำและให้ค่าน้ำหนักเพื่อปรับ โมเดลจนได้ค่าที่ดีขึ้น ในภาพจะเห็น n= 500 ค่าของ Reg line ที่ได้ ดีกว่า การใช้ decision tree ธรรมดา มาก

อ้างอิง

https://www.analyticsvidhya.com/blog/2015/08/introduction-ensemble-learning/

http://web.engr.oregonstate.edu/~tgd/publications/mcs-ensembles.pdf

https://pt.slideshare.net/marinasantini1/lecture06-ml4-ltmarinasantini2013

http://manish2020.blogspot.com/2012/12/ensemble-of-weak-learners.html

https://mlwave.com/kaggle-ensembling-guide/

--

--