Tracks
Random Forest Regression เป็นหนึ่งในวิธีที่น่าเชื่อถือที่สุดในการทำแบบจำลองข้อมูลตารางแบบไม่เชิงเส้น โดยต้องตั้งค่าเพียงเล็กน้อย ช่วยให้ได้โมเดลที่ใช้งานได้อย่างรวดเร็ว แม้ข้อมูลจะมีสัญญาณรบกวนหรือความสัมพันธ์ไม่ชัดเจน
คู่มือนี้จะพาคุณผ่านเวิร์กโฟลว์ครบถ้วนของ Random Forest Regression คุณจะเข้าใจกลไกของอัลกอริทึมและสามารถใช้งานด้วย Python เราจะพูดคุยถึงเทคนิคการประเมินผลและการปรับจูนเพื่อให้ได้ประสิทธิภาพที่ดีขึ้น
Random Forest Regression คืออะไร?
การถดถอยแบบ Random forest เป็นเทคนิคเอนเซมเบิลที่สร้างต้นไม้ตัดสินใจแบบสุ่มหลายต้นและผสานผลลัพธ์เพื่อให้ได้ค่าพยากรณ์แบบต่อเนื่อง แทนที่จะพึ่งโมเดลเดียว จะรวมการทำนายจากหลายต้นไม้ โดยปกติด้วยการหาเฉลี่ยของผลลัพธ์

ทำไมต้องหลายต้นไม้? ต้นไม้ตัดสินใจเพียงต้นเดียวมักจะโอเวอร์ฟิต มันจับทั้งสัญญาณรบกวนและสัญญาณจริง โดยเฉพาะเมื่อทำงานกับข้อมูลจริงที่ยุ่งเหยิง
Bootstrap aggregating และการสุ่มคุณลักษณะ
จุดแข็งของ Random Forest Regression มาจากการใส่ความสุ่มในแต่ละขั้นตอน แล้วรวมผลลัพธ์เพื่อลดความแปรปรวน มาดูกลไกภายในนี้กัน
Bootstrap aggregating หรือ bagging จะฝึกต้นไม้แต่ละต้นด้วยชุดย่อยแบบสุ่มของข้อมูล วิธีนี้สร้างความหลากหลายระหว่างต้นไม้และลดความเสี่ยงของการโอเวอร์ฟิต
การสุ่มคุณลักษณะเพิ่มความหลากหลายอีกชั้น โดยเลือกคุณลักษณะย่อยแบบสุ่มในแต่ละครั้งที่แยกโหนด ทั้งสองเทคนิคร่วมกันช่วยทำให้การทำนายเสถียรและเพิ่มความสามารถในการทั่วไป
การสุ่มตัวอย่างแบบบูตสแตรปและการสุ่มคุณลักษณะ
Random Forest เริ่มจากการสุ่มตัวอย่างแบบบูตสแตรป หรือที่เรียกว่า bagging ต้นไม้แต่ละต้นจะถูกฝึกด้วยชุดย่อยที่สุ่มมาจากชุดข้อมูลดั้งเดิม ทำให้ต้นไม้เรียนรู้รูปแบบที่แตกต่างกันแทนที่จะมีโครงสร้างซ้ำกัน
โมเดลยังเพิ่มการสุ่มคุณลักษณะ โดยพิจารณาเพียงชุดย่อยของคุณลักษณะแบบสุ่มในแต่ละครั้งที่แยกโหนด แทนที่จะใช้ทุกคุณลักษณะที่มีอยู่ วิธีนี้ป้องกันไม่ให้คุณลักษณะเด่นเพียงไม่กี่ตัวครอบงำทุกต้นไม้
เมื่อรวม bagging และการสุ่มคุณลักษณะเข้าด้วยกัน จะได้ชุดต้นไม้ที่ไม่สัมพันธ์กัน ทำให้เกิดข้อผิดพลาดคนละแบบ และเมื่อรวมกัน การทำนายจะหักล้างสัญญาณรบกวนและเพิ่มความแม่นยำโดยรวม
การขยายต้นไม้และการรวมการทำนาย
ต้นไม้แต่ละต้นในป่าจะเติบโตลึก มักไม่ตัดแต่งกิ่ง เพื่อให้โมเดลจับรูปแบบที่ซับซ้อน ปฏิสัมพันธ์ และความสัมพันธ์แบบไม่เชิงเส้นในข้อมูลได้
ต้นไม้แต่ละต้นอาจโอเวอร์ฟิต แต่ผลกระทบนั้นจะลดลงเมื่อ Random Forest รวมผลลัพธ์ของพวกมันเพื่อให้ได้ผลสุดท้าย
สมดุลระหว่างอคติและความแปรปรวน
Random Forest สร้างสมดุลระหว่างสองปัจจัยหลัก: ความแข็งแกร่งของต้นไม้แต่ละต้นและความหลากหลายของทั้งป่า
ต้นไม้ลึกมีอคติต่ำ เพราะสามารถฟิตกับข้อมูลฝึกได้ใกล้เคียง ขณะเดียวกัน ความสุ่มในการสุ่มตัวอย่างข้อมูลและการเลือกคุณลักษณะช่วยลดความสัมพันธ์ระหว่างต้นไม้ ด้วยการเฉลี่ยต้นไม้จำนวนมากที่มีอคติต่ำและความสัมพันธ์กันอ่อน โมเดลจึงลดความแปรปรวนโดยรวมได้โดยไม่เพิ่มอคติ
การเตรียมข้อมูลและเวิร์กโฟลว์การใช้งาน
ต่อไปจะนำแนวคิดไปใช้จริง และดูเทคนิคในการเปลี่ยนข้อมูลดิบให้เป็นโมเดล Random Forest ที่ใช้งานได้
การทำความสะอาดข้อมูลและการสร้างคุณลักษณะ
การเตรียมข้อมูลสำหรับ Random Forest มักเริ่มจากการจัดการตัวแปรเชิงหมวดหมู่
- สำหรับหมวดหมู่จำนวนน้อย one-hot encoding ใช้งานได้ดีและเชื่อถือได้
- สำหรับคุณลักษณะที่มีจำนวนหมวดหมู่สูง target encoding มักมีประสิทธิภาพกว่า เพราะจับสัญญาณระดับหมวดหมู่ได้โดยไม่เพิ่มมิติอย่างมีนัยสำคัญ
ถัดมาคือข้อมูลสูญหาย วิธีการขึ้นกับไลบรารีที่ใช้ บางการใช้งานสามารถจัดการค่าว่างได้โดยตรงระหว่างการแยกโหนด ขณะที่บางไลบรารีคาดหวังให้เติมค่าก่อน ในหลายกรณี การชดเชยค่าง่าย ๆ ด้วยมัธยฐานหรือโหมดก็เพียงพอ เนื่องจาก Random Forest ไม่พึ่งพาการแจกแจงที่เคร่งครัด วิธีตรงไปตรงมานี้จึงได้ผลดีในทางปฏิบัติ
ท้ายที่สุดแล้ว ผลกระทบที่ใหญ่กว่ามาจากการสร้างคุณลักษณะ ตัวอย่างเช่น ตัวแปรล่าช้า (lag) สร้างการพึ่งพาตามเวลา ค่ารวมแบบกลิ้ง (rolling) จับแนวโน้มเฉพาะช่วง และสถิติแบบจัดกลุ่ม เข้ารหัสรูปแบบระดับสูง คุณลักษณะที่สร้างขึ้นเหล่านี้ช่วยให้โมเดลแทนข้อมูลได้ดีขึ้นและเพิ่มประสิทธิภาพการพยากรณ์
หากต้องการเจาะลึก แนะนำให้อ่านบทความ Feature Engineering in Machine Learning ของฉัน
การตั้งค่าค่าอ้างอิงพื้นฐานและกลยุทธ์การแบ่งข้อมูล
ก่อนปรับจูนใด ๆ ขั้นแรกคือแบ่งข้อมูลให้ถูกต้อง
สำหรับปัญหาข้อมูลตารางทั่วไป โดยมากหมายถึงการแยกชุดข้อมูลเป็นชุดฝึก ชุดตรวจสอบความถูกต้อง และชุดทดสอบ เพื่อให้โมเดลถูกฝึกบนส่วนหนึ่ง ปรับจูนบนอีกส่วนหนึ่ง และประเมินบนส่วนสุดท้ายที่ไม่ถูกแตะต้อง
การแยกเช่นนี้สำคัญเพราะให้ภาพที่สมจริงว่าโมเดลจะทำงานอย่างไรกับข้อมูลใหม่

สำหรับอนุกรมเวลา กลยุทธ์การแบ่งจะแตกต่างออกไป การแบ่งแบบสุ่มอาจทำให้ข้อมูลอนาคตไหลย้อนสู่ข้อมูลอดีต ทำให้ดูเหมือนประสิทธิภาพดีกว่าความเป็นจริง
Walk-forward validation หลีกเลี่ยงปัญหานี้ด้วยการฝึกบนช่วงเวลาเริ่มต้น ตรวจสอบบนช่วงถัดไป แล้วขยับหน้าต่างเวลาไปทีละก้าว การประเมินแบบนี้สอดคล้องกับวิธีใช้งานจริงในระบบโปรดักชัน
การเขียนโค้ด Python แบบครบเวิร์กโฟลว์
การใช้งานทำตามกระบวนการของ scikit-learn ที่เรียบง่าย:
- นำเข้าโมเดล
- แบ่งข้อมูล
- ฝึกตัวประมาณค่า (estimator)
- สร้างการพยากรณ์
- ประเมินผลลัพธ์
การตั้งค่าทั่วไปในทางปฏิบัติจะมีลักษณะดังนี้:
from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_absolute_error, root_mean_squared_error
import matplotlib.pyplot as plt
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
model = RandomForestRegressor(random_state=42)
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
mae = mean_absolute_error(y_test, y_pred)
rmse = root_mean_squared_error(y_test, y_pred)
เมื่อฝึกและประเมินโมเดลแล้ว ขั้นตอนถัดไปคือการสร้างภาพเปรียบเทียบค่าทำนายกับค่าจริง
สแคตเทอร์พล็อตช่วยให้มองเห็นอคติอย่างเป็นระบบได้ง่าย เช่น การทำนายที่มักเกินหรือขาดเป้าหมายเสมอ นอกจากนี้ยังช่วยเผยให้เห็นheteroscedasticity ซึ่งความคลาดเคลื่อนของการพยากรณ์จะกว้างขึ้นเมื่อค่าเป้าหมายเพิ่มขึ้น
การปรับจูนไฮเปอร์พารามิเตอร์และการประเมินผล
หลังจากฝึกโมเดลแล้ว ขั้นตอนต่อไปคือการปรับพารามิเตอร์สำคัญและประเมินประสิทธิภาพ ต่อไปนี้คือเทคนิคยอดนิยม
การเลือกและตีความเมตริกการถดถอย
Root mean squared error (RMSE), mean average error (MAE) และ R² วัดประสิทธิภาพต่างกัน
- RMSE ลงโทษความผิดพลาดขนาดใหญ่หนักกว่า เพราะยกกำลังสองเศษเหลือ จึงเหมาะเมื่อความผิดพลาดใหญ่มีต้นทุนสูงและต้องลดให้เหลือน้อยที่สุด
- MAE ปฏิบัติต่อความผิดพลาดทุกขนาดเท่าเทียมกัน จึงให้ภาพที่เสถียรกว่าเมื่อข้อมูลมีเอาต์ไลเออร์ หรือเมื่อค่าคลาดเคลื่อนเฉลี่ยสม่ำเสมอสำคัญกว่าความผิดพลาดที่พุ่งสูงเป็นครั้งคราว
- R² วัดสัดส่วนความแปรปรวนของเป้าหมายที่โมเดลอธิบายได้ ช่วยเปรียบเทียบความพอดีโดยรวม แต่ไม่สะท้อนความคลาดเคลื่อนในการพยากรณ์โดยตรง
นอกเหนือจากเมตริกรวม การวิเคราะห์ความคลาดเคลื่อนให้ข้อมูลเชิงลึกมากขึ้น เศษเหลือ (residual) ซึ่งนิยามเป็นค่าต่างระหว่างค่าจริงกับค่าทำนาย ควรตรวจสอบในหลายช่วงของข้อมูล
การพล็อตเศษเหลือกับค่าทำนายหรือค่าเป้าหมายจริงช่วยเผยรูปแบบได้ เช่น หากความผิดพลาดเพิ่มเมื่อค่าเป้าหมายสูงขึ้น แสดงถึง heteroscedasticity หากการทำนายอยู่เหนือหรือต่ำกว่าเส้นทแยงมุมอย่างสม่ำเสมอ แสดงถึงอคติอย่างเป็นระบบ
การแบ่งวิเคราะห์ความผิดพลาดตามกลุ่มคุณลักษณะหรือช่วงค่าเป้าหมายยังช่วยระบุรูปแบบความล้มเหลวได้ เพราะโมเดลอาจทำได้ดีในค่าช่วงกลางแต่ยากในค่าที่สุดขั้ว หรือมีพฤติกรรมต่างกันในแต่ละกลุ่มข้อมูล
การประเมินแบบ out-of-bag (OOB)
Random Forest มีเครื่องมือประเมินในตัวผ่านการสุ่มตัวอย่างแบบ out-of-bag เนื่องจากต้นไม้แต่ละต้นฝึกบนตัวอย่างแบบบูตสแตรป ส่วนหนึ่งของข้อมูลจะถูกเว้นไว้และไม่ได้เห็นระหว่างการฝึก ตัวอย่าง out-of-bag เหล่านี้สามารถใช้ประเมินโมเดลได้โดยไม่ต้องสร้างชุดตรวจสอบแยกต่างหาก ซึ่งคะแนน OOB สะท้อนสิ่งนี้

อย่างไรก็ตาม การประเมินแบบ OOB อาจไม่เพียงพอเสมอไป สำหรับการยืนยันโมเดลขั้นสุดท้าย โดยเฉพาะในกรณีที่มีความเสี่ยงสูงหรือกังวลเรื่องข้อมูลรั่วไหล จำเป็นต้องมีชุดทดสอบแบบแยกเด็ดขาด
การจัดลำดับความสำคัญไฮเปอร์พารามิเตอร์ที่จะปรับจูน
ใน Random Forest พารามิเตอร์ max_features และ n_estimators มักส่งผลต่อประสิทธิภาพอย่างเห็นได้ชัดที่สุด
-
max_featuresควบคุมจำนวนสูงสุดของคุณลักษณะที่พิจารณาในแต่ละการแยกโหนด ค่าที่ต่ำเพิ่มความสุ่มและลดความสัมพันธ์ระหว่างต้นไม้ ซึ่งอาจช่วยการทั่วไป ค่าสูงทำให้ต้นไม้แต่ละต้นแข็งแรงขึ้นแต่คล้ายกันมากขึ้น ซึ่งอาจเพิ่มความแปรปรวน -
n_estimatorsควบคุมจำนวนต้นไม้ในป่า การเพิ่มจำนวนโดยทั่วไปช่วยให้ผลลัพธ์ดีขึ้นด้วยการทำให้การทำนายเสถียรขึ้น แต่ก็เพิ่มเวลาในการคำนวณ เกินจุดหนึ่งผลกำไรจะน้อยมาก จึงควรระบุจุดอิ่มตัวนั้น
ควรปรับพารามิเตอร์เหล่านี้ด้วยการตรวจสอบแบบไขว้ เพื่อสร้างสมดุลระหว่างความซับซ้อนของโมเดล เวลาในการฝึก และประสิทธิภาพในการพยากรณ์
ความสำคัญของคุณลักษณะและการตีความ
โมเดล Random Forest มักถูกมองว่าเป็นกล่องดำ แต่มีหลายวิธีในการทำความเข้าใจว่าแต่ละคุณลักษณะมีอิทธิพลต่อการทำนายอย่างไร มาดูวิธีสำคัญบางประการ
ความสำคัญตามความไม่บริสุทธิ์ (impurity-based)
Random Forest คำนวณความสำคัญของคุณลักษณะด้วยค่า Mean Decrease in Impurity (MDI) ทุกครั้งที่ใช้คุณลักษณะเพื่อแยกโหนด โมเดลจะวัดว่าการแยกนั้นลดความไม่บริสุทธิ์ได้เท่าใด เช่น ความแปรปรวนในงานถดถอย การลดลงเหล่านี้จะถูกรวมสะสมข้ามทุกต้นไม้ เป็นคะแนนสะท้อนการมีส่วนช่วยของคุณลักษณะต่อการพยากรณ์ที่ดีขึ้น
แม้วิธีนี้จะรวดเร็วและมีอยู่ในโมเดล แต่มีข้อจำกัดที่ทราบกัน คือ MDI มักเอนเอียงไปทางคุณลักษณะเชิงต่อเนื่องหรือเชิงหมวดหมู่ที่มีค่าจำแนกจำนวนมาก เพราะมีจุดแยกที่เป็นไปได้มากกว่า ซึ่งอาจทำให้คะแนนความสำคัญสูงเกินจริง แม้ไม่ได้ทำนายได้ดีกว่าจริง ๆ
Permutation importance
Permutation importance วัดการเปลี่ยนแปลงของประสิทธิภาพเมื่อสุ่มสลับค่าของคุณลักษณะหนึ่ง ๆ ในชุดข้อมูลที่กันไว้ หากการสลับทำให้ประสิทธิภาพลดลงอย่างมีนัยสำคัญ คุณลักษณะนั้นก็สำคัญ หากผลกระทบเล็กน้อย แสดงว่าคุณลักษณะนั้นมีคุณค่าการพยากรณ์จำกัด
วิธีนี้สะท้อนพฤติกรรมของโมเดลจริง จึงน่าเชื่อถือกว่าในการวิเคราะห์
อย่างไรก็ตาม คุณลักษณะที่มีความสัมพันธ์กันทำให้การตีความซับซ้อน เมื่อสองคุณลักษณะบรรทุกข้อมูลคล้ายกัน การสลับค่าหนึ่งอาจไม่กระทบประสิทธิภาพมากนัก เพราะอีกตัวให้สัญญาณแทนได้ ส่งผลให้ความสำคัญถูกเฉลี่ยข้ามคุณลักษณะที่สัมพันธ์กัน ซึ่งต้องตีความอย่างระมัดระวัง
ค่า SHAP
ค่า SHAP (Shapley Additive Explanations) อธิบายว่าคุณลักษณะแต่ละตัวมีส่วนต่อการทำนายรายกรณีมากน้อยเพียงใด โดยกำหนดค่าที่บอกว่าคุณลักษณะนั้นผลักการทำนายให้สูงหรือต่ำกว่าค่าอ้างอิงเท่าไร
วิธีนี้มักใช้เพื่ออธิบายการตัดสินใจของโมเดลและสร้างความเชื่อมั่น หากต้องการดูรายละเอียดเพิ่มเติม โปรดอ่านบทความ SHAP Values in Machine Learning
ข้อจำกัดและกรณีที่มักล้มเหลว
Random Forest Regression ใช้งานได้ดีในหลายสถานการณ์ แต่ก็มีข้อจำกัดชัดเจน การเข้าใจข้อจำกัดเหล่านี้ช่วยตัดสินใจว่าเมื่อใดควรใช้ และเมื่อใดควรเปลี่ยนวิธี
ขีดจำกัดการคาดเกินช่วง (extrapolation) และกรณีขอบเขต
Random Forest ไม่สามารถคาดเกินช่วงค่าที่พบในข้อมูลฝึกได้
ต้นไม้แต่ละต้นทำนายจากการแยกโหนดที่เห็นระหว่างการฝึก ดังนั้นผลสุดท้ายจึงถูกจำกัดด้วยค่าต่ำสุดและค่าสูงสุดของเป้าหมายที่พบในชุดข้อมูล หากโมเดลเห็นค่าเป้าหมายเพียงระหว่าง 10 ถึง 100 ก็จะไม่สามารถทำนาย 120 ได้ ไม่ว่าค่าสัญญาณขาเข้าจะแรงเพียงใด ปัญหานี้เด่นชัดในงานคาดการณ์การเติบโตหรือระบบที่ขับเคลื่อนด้วยแนวโน้ม
โมเดลยังทำงานยากกับข้อมูลมิติสูงแบบเบาบางมาก เช่น ตัวแทนข้อความ หรือเวกเตอร์ one-hot ที่มีหลายพันคอลัมน์ ในกรณีนี้ต้นไม้ไม่มีประสิทธิภาพและไม่สามารถจับการแยกที่มีความหมาย ทางออกที่ใช้ได้จริง ได้แก่
- การลดมิติ
- การคัดเลือกคุณลักษณะ
- ใช้โมเดลที่ออกแบบมาสำหรับข้อมูลเบาบาง เช่น Ridge Regression
การแลกเปลี่ยนด้านการตีความ
ต้นไม้เดี่ยวให้เส้นทางชัดเจนจากอินพุตสู่เอาต์พุต จึงอธิบายได้ง่าย ในทางกลับกัน ป่าซึ่งรวมต้นไม้นับร้อยเข้าด้วยกัน ทำให้ยากที่จะไล่ตามการตัดสินใจแต่ละต้น
ในสภาพแวดล้อมที่มีข้อกำกับเข้มงวด ประเด็นนี้สำคัญ หากคำอธิบายต้องเรียบง่ายและไล่ตามได้โดยตรง ต้นไม้เดี่ยวหรือโมเดลเชิงเส้นอาจเหมาะกว่า หากให้ความสำคัญกับประสิทธิภาพ และยอมรับคำอธิบายผ่านวิธีอย่างความสำคัญของคุณลักษณะหรือ SHAP ได้ Random Forest ก็ยังเป็นตัวเลือกที่แข็งแกร่ง
ข้อจำกัดด้านคอมพิวต์ หน่วยความจำ และเวลาแฝง
Random Forest สเกลตามเชิงเส้นกับจำนวนต้นไม้และขนาดข้อมูล เมื่อชุดข้อมูลใหญ่ขึ้น เวลาในการฝึกและการใช้หน่วยความจำจะเพิ่มขึ้น เพราะต้องสร้างและเก็บต้นไม้แต่ละต้น ป่าขนาดใหญ่ยังทำให้การอนุมานช้าลง เนื่องจากต้องรวมผลจากต้นไม้ทั้งหมด
ในระบบโปรดักชันที่จำกัดเวลาแฝงหรือค่าใช้จ่าย ประเด็นนี้อาจเป็นคอขวด การลดจำนวนต้นไม้ จำกัดความลึกของต้นไม้ หรือจำกัดจำนวนคุณลักษณะที่พิจารณาในแต่ละการแยกโหนด ช่วยควบคุมการใช้ทรัพยากรได้ ซึ่งเป็นการแลกความแม่นยำบางส่วนกับเวลาในการฝึกและทำนายที่เร็วขึ้น
Random Forest Regression เทียบกับทางเลือกอื่น: เลือกอย่างไร
อาจสงสัยว่า Random Forest Regression เหมาะกับกรณีใช้งานของคุณหรือไม่ หรือควรพิจารณาทางเลือกใด
การสร้างกรอบเปรียบเทียบโมเดล
กรณีใช้งานแตกต่างกัน แต่แนวทางหนึ่งที่ช่วยได้เสมอคือ เปรียบเทียบประสิทธิภาพของโมเดลต่าง ๆ (เช่น การถดถอยเชิงเส้น support vector regression การบูสต์แบบไล่ระดับ ฯลฯ) บนชุดข้อมูลเดียวกัน ควบคู่กับ Random Forest Regressor
นั่นคือใช้ชุดฝึก ชุดตรวจสอบ และชุดทดสอบชุดเดียวกันทุกโมเดล จากนั้นประเมินภายใต้เกณฑ์ความผิดพลาดและสมมติฐานทางธุรกิจเดียวกัน
Random forest regression เทียบกับการถดถอยเชิงเส้นและ support vector regression
Random Forest และการถดถอยเชิงเส้น แก้ปัญหาคนละแบบ การถดถอยเชิงเส้นเหมาะที่สุดเมื่อความสัมพันธ์ระหว่างอินพุตกับเป้าหมายส่วนใหญ่เป็นเชิงเส้น และต้องการสัมประสิทธิ์ที่อธิบายง่าย นอกจากนี้ยังเหมาะกว่าเมื่อการคาดเกินช่วงที่เคร่งครัดสำคัญ เพราะสามารถขยายเกินช่วงเป้าหมายที่สังเกตได้
ตรงกันข้าม Random Forest เก่งเรื่องรูปแบบไม่เชิงเส้น ปฏิสัมพันธ์ของคุณลักษณะ และขอบเขตที่ไม่ปกติ จึงเป็นเครื่องมือทำแบบจำลองที่แข็งแรงสำหรับระบบจริงที่ซับซ้อน แต่เป็นตัวเลือกที่อ่อนกว่าในงานพยากรณ์ที่พึ่งพาแนวโน้มหนัก ๆ
Support vector regression (SVR) อยู่ในอีกมุมหนึ่ง มักทำงานได้ดีบนชุดข้อมูลขนาดเล็ก แต่ไวต่อการสเกลคุณลักษณะมากกว่าและต้องปรับจูนอย่างระมัดระวัง Random Forest ไม่พึ่งอินพุตที่ทำมาตรฐาน จึงใช้ง่ายกว่าในเวิร์กโฟลว์ข้อมูลตารางทั่วไป
SVR เป็นตัวเลือกที่แข็งแรงเมื่อชุดข้อมูลกะทัดรัดและพื้นที่คุณลักษณะจำกัด แต่จะดูแลง่ายน้อยลงเมื่อปริมาณข้อมูล ความซับซ้อนของคุณลักษณะ หรือแรงกดดันด้านการปฏิบัติงานเพิ่มขึ้น
Random forest regression เทียบกับการบูสต์แบบไล่ระดับและต้นไม้เดี่ยว
Random Forest สร้างต้นไม้อย่างอิสระและเฉลี่ยผลลัพธ์ Gradient boosting สร้างต้นไม้อย่างมีลำดับ โดยแต่ละต้นแก้ข้อผิดพลาดของต้นก่อนหน้า
วิธีการบูสต์แบบไล่ระดับ เช่น XGBoost มักทำได้แม่นยำกว่า โดยเฉพาะกับข้อมูลตารางที่มีโครงสร้าง แต่ต้องปรับจูนมากกว่าและไวต่อไฮเปอร์พารามิเตอร์มากกว่า อีกทั้งฝึกช้ากว่าเพราะมีลำดับขั้น Random Forest ฝึกง่ายกว่า เสถียรกว่าโดยไม่ต้องจูนมาก และไวต่อการตั้งค่าน้อยกว่า
เมื่อเทียบกับต้นไม้เดี่ยว Random Forest เสถียรและแม่นยำกว่ามาก ต้นไม้เดี่ยวตีความง่ายเพราะไล่ตามเส้นทางการตัดสินใจได้ทุกขั้น แต่ไวต่อการเปลี่ยนแปลงเล็กน้อยของข้อมูลอย่างมาก Random Forest ลดความไม่เสถียรนี้ด้วยการเฉลี่ยข้ามหลายต้นไม้ แต่ก็สูญเสียความสามารถในการตีความโดยตรง
สรุปการเปรียบเทียบโมเดล
|
โมเดล |
รับมือความไม่เชิงเส้น |
คาดเกินช่วง (Extrapolation) |
การตีความ |
ความซับซ้อนในการจูน |
ต้นทุนการฝึก |
|
Random Forest Regression |
แข็งแกร่ง |
อ่อน |
ปานกลาง |
ปานกลาง |
ปานกลาง |
|
การถดถอยเชิงเส้น |
อ่อนไปจนถึงปานกลาง |
แข็งแกร่ง |
สูง |
ต่ำ |
ต่ำ |
|
Support Vector Regression |
แข็งแกร่ง |
อ่อนไปจนถึงปานกลาง |
ต่ำ |
สูง |
สูง (เมื่อข้อมูลใหญ่) |
|
Gradient Boosting (XGBoost) |
แข็งแกร่งมาก |
อ่อน |
ต่ำถึงปานกลาง |
สูง |
สูง |
|
ต้นไม้ตัดสินใจเดี่ยว |
ปานกลาง |
อ่อน |
สูง |
ต่ำ |
ต่ำ |
ข้อคิดส่งท้าย
Random Forest Regression เหมาะเป็นโมเดลตั้งต้นเมื่อข้อมูลยุ่ง ความสัมพันธ์ไม่เชิงเส้น และต้องการฐานที่แข็งแรงโดยไม่ต้องพรีโปรเซสซิงหนัก รองรับคุณลักษณะแบบผสม จับปฏิสัมพันธ์ และให้ประสิทธิภาพที่เสถียรด้วยการตั้งค่าน้อย
เวิร์กโฟลว์ทั่วไปดำเนินไปอย่างชัดเจน เริ่มจากการพรีโปรเซสซิงขั้นต่ำและโฟกัสที่โครงสร้างข้อมูลให้ถูกต้อง สร้างค่าอ้างอิงพื้นฐานด้วยโมเดล Random Forest ค่าเริ่มต้น และประเมินด้วยเมตริกที่สอดคล้องกัน จากนั้นปรับจูนไฮเปอร์พารามิเตอร์สำคัญอย่างจำนวนต้นไม้และกลยุทธ์สุ่มคุณลักษณะเพื่อยกระดับประสิทธิภาพ
เมื่อโมเดลนิ่งแล้ว ดำดิ่งสู่การประเมินเชิงลึกด้วยการวิเคราะห์เศษเหลือ แบ่งช่วงความผิดพลาด และใช้ SHAP เพื่ออธิบายการทำนายเมื่อจำเป็น
ขั้นตอนถัดไป เพื่อความเข้าใจเชิงลึกและการลงมือปฏิบัติ ลองดูคอร์ส Machine Learning with Tree-Based Models in Python
Random Forest Regression คำถามที่พบบ่อย
ข้อจำกัดของโมเดล Random Forest มีอะไรบ้าง?
Random Forest ไม่สามารถคาดเกินช่วงค่าของข้อมูลฝึก และอาจมีปัญหากับข้อมูลมิติสูงที่เบาบางมาก นอกจากนี้ยังตีความได้น้อยกว่าต้นไม้เดี่ยว และอาจใช้ทรัพยากรคำนวณมากขึ้นตามจำนวนต้นไม้ที่เพิ่มขึ้น
จะรู้ได้อย่างไรว่ารุ่น Random Forest ของฉันโอเวอร์ฟิต?
เปรียบเทียบผลการฝึกกับผลการตรวจสอบ หากความผิดพลาดบนชุดฝึกต่ำ แต่บนชุดตรวจสอบสูงกว่ามาก แสดงว่าโมเดลกำลังโอเวอร์ฟิต นอกจากนี้ หากเพิ่มความลึกของต้นไม้แล้วเมตริกบนชุดตรวจสอบไม่ดีขึ้น ก็เป็นสัญญาณเช่นกัน
XGBoost หรือ Random Forest ดีกว่ากัน?
โดยทั่วไป XGBoost ได้ความแม่นยำสูงกว่า เพราะสร้างต้นไม้อย่างมีลำดับและแก้ข้อผิดพลาดในแต่ละขั้น เหมาะเมื่อสามารถลงทุนเวลาในการปรับจูนไฮเปอร์พารามิเตอร์ได้ ส่วน Random Forest สร้างต้นไม้อย่างอิสระและเฉลี่ยการทำนาย ทำงานได้เสถียรกว่า ต้องจูนน้อยกว่า และเหมาะเป็นค่าอ้างอิงพื้นฐาน
Random Forest จัดการข้อมูลอนุกรมเวลาได้หรือไม่?
ไม่รองรับโดยตรง ต้องแปลงอนุกรมเวลาเป็นรูปแบบตารางก่อน โดยใช้คุณลักษณะแบบ lag ค่าสถิติเคลื่อนที่ หรือการแปลงแบบหน้าต่างเวลา แล้วจึงฝึกโมเดล