ต่างจาก Random Forest ตรงที่ Gradient Boosted Tree อาจปรับให้พอดีมากเกินไป ดังนั้น คุณจึงใช้การปรับให้เหมาะสมและการหยุดทำงานก่อนเวลาอันควรได้โดยใช้ชุดข้อมูลที่ใช้ตรวจสอบสำหรับเครือข่ายประสาทเทียม
ตัวอย่างเช่น รูปภาพต่อไปนี้แสดงเส้นโค้งความสูญเสียและความแม่นยำสำหรับชุดข้อมูลการฝึกและชุดข้อมูลที่ใช้ตรวจสอบเมื่อฝึกโมเดล GBT โปรดสังเกตว่าเส้นโค้งมีความแตกต่างกันมาก ซึ่งบ่งชี้ว่ามีการประมาณมากเกินไปในระดับสูง
รูปที่ 29 อัตราผลขาดทุนเทียบกับจํานวนแผนผังการตัดสินใจ
รูปที่ 30 ความแม่นยำเทียบกับจํานวนต้นไม้การตัดสินใจ
พารามิเตอร์การถ่วงน้ำหนักทั่วไปสำหรับต้นไม้ที่เพิ่มประสิทธิภาพด้วย Gradient มีดังนี้
- ความลึกสูงสุดของแผนผัง
- อัตราการหดตัว
- อัตราส่วนของแอตทริบิวต์ที่ทดสอบในแต่ละโหนด
- สัมประสิทธิ์ L1 และ L2 ของความเสียหาย
โปรดทราบว่าโดยทั่วไปแล้ว ต้นไม้การตัดสินใจจะเติบโตได้น้อยกว่าโมเดล Random Forest มาก โดยค่าเริ่มต้น ต้นไม้ที่มีการเพิ่มประสิทธิภาพด้วย Gradient ใน TF-DF จะเติบโตเป็นระดับความลึก 6 เนื่องจากต้นไม้มีความลึกไม่มาก จำนวนตัวอย่างขั้นต่ำต่อใบจึงมีผลกระทบเพียงเล็กน้อยและโดยทั่วไปจะไม่ได้รับการปรับแต่ง
ความจำเป็นในการใช้ชุดข้อมูลการตรวจสอบจะกลายเป็นปัญหาเมื่อจำนวนตัวอย่างการฝึกมีน้อย ดังนั้น การฝึกต้นไม้เพิ่มประสิทธิภาพด้วยอนุพันธ์ภายในลูปการทดสอบไขว้หรือปิดใช้การหยุดทำงานก่อนเวลาอันควรเมื่อทราบว่าโมเดลไม่ได้ปรับให้พอดีมากเกินไปจึงเป็นเรื่องปกติ
ตัวอย่างการใช้งาน
ในบทก่อนหน้า เราได้ฝึกโมเดล Random Forest กับชุดข้อมูลขนาดเล็ก ในตัวอย่างนี้ เราจะแทนที่โมเดล Random Forest ด้วยโมเดลต้นไม้ที่มีการเพิ่มประสิทธิภาพด้วย Gradient
model = tfdf.keras.GradientBoostedTreesModel()
# Part of the training dataset will be used as validation (and removed
# from training).
model.fit(tf_train_dataset)
# The user provides the validation dataset.
model.fit(tf_train_dataset, validation_data=tf_valid_dataset)
# Disable early stopping and the validation dataset. All the examples are
# used for training.
model.fit(
tf_train_dataset,
validation_ratio=0.0,
early_stopping="NONE")
# Note: When "validation_ratio=0", early stopping is automatically disabled,
# so early_stopping="NONE" is redundant here.
การใช้งานและข้อจำกัด
ต้นไม้ที่มีการเพิ่มประสิทธิภาพด้วย Gradient มีทั้งข้อดีและข้อเสีย
ข้อดี
- เช่นเดียวกับต้นไม้การตัดสินใจ รูปแบบนี้รองรับฟีเจอร์ที่เป็นตัวเลขและเชิงหมวดหมู่โดยกำเนิด และมักไม่จําเป็นต้องประมวลผลฟีเจอร์ล่วงหน้า
- ต้นไม้เพิ่มประสิทธิภาพด้วย Gradient มีไฮเปอร์พารามิเตอร์เริ่มต้นที่มักให้ผลลัพธ์ที่ยอดเยี่ยม อย่างไรก็ตาม การปรับแต่งไฮเปอร์พารามิเตอร์เหล่านั้นจะช่วยปรับปรุงโมเดลได้อย่างมาก
- โดยทั่วไปแล้ว โมเดลต้นไม้ที่เพิ่มประสิทธิภาพด้วย Gradient Boosting จะมีขนาดเล็ก (จำนวนโหนดและหน่วยความจำ) และทำงานได้เร็ว (มักจะใช้เวลาเพียง 1-2 µs / ตัวอย่าง)
ข้อเสีย
- ต้องฝึกต้นไม้การตัดสินใจตามลําดับ ซึ่งอาจทําให้การฝึกช้าลงอย่างมาก อย่างไรก็ตาม การที่ต้นไม้การตัดสินใจมีขนาดเล็กลงก็ช่วยลดความช้าในการฝึกได้บ้าง
- เช่นเดียวกับ Random Forest ต้นไม้เพิ่มประสิทธิภาพด้วยอนุพันธ์จะไม่สามารถเรียนรู้และใช้การนําเสนอภายในซ้ำได้ ต้นไม้การตัดสินใจแต่ละต้น (และแต่ละสาขาของต้นไม้การตัดสินใจแต่ละต้น) ต้องเรียนรู้รูปแบบชุดข้อมูลอีกครั้ง ในชุดข้อมูลบางชุด โดยเฉพาะชุดข้อมูลที่มีข้อมูลที่ไม่มีโครงสร้าง (เช่น รูปภาพ ข้อความ) จะทำให้ Gradient Boosted Tree แสดงผลลัพธ์ได้แย่กว่าวิธีการอื่นๆ