ฉันวิ่งป่าสุ่ม 4,500 ครั้งข้ามคืนด้วยการตั้งค่าพารามิเตอร์แบบสุ่ม:
ปัญหาการถดถอยYsignal = x1^2+sin(x2*pi) + x3 * x4 + x5
ที่x
มีการสุ่มตัวอย่างอิสระจากการแจกแจงแบบปกติ sd = 1, mean = 1
Ytotal = Ysignal + Yerror
ที่ไหน Yerror = rnorm(n.observations,sd=sd(Ysignal))*noise.factor
theoretical.explainable.variance"TEV" = var(Ysignal= / var(Ytotal)
randomForest.performance = explained.variance(OOB cross-validation) / TEV
ชุดข้อมูลถูกสุ่มตัวอย่างจากปัญหาการถดถอยและเพิ่มสัญญาณรบกวน
n.obs
เป็นตัวเลขสุ่มระหว่าง 1,000 ถึง 5,000
n.extra.dummy.variables
ระหว่าง 1 ถึง 20
ntree
เสมอ 1,000
sample_replacement
เสมอ true
mtry
เป็น 5-25 จำกัด โดยn.obs
noise.factor
ระหว่าง 0 และ 9
samplesize.ratio
ตัวเลขสุ่มระหว่าง 10% ถึง 100% ขนาดอัตราส่วนของ bootstrap แต่ละตัว
ทุกรุ่นได้รับการฝึกฝนเช่นนี้ rfo = randomForest(x=X, y=Ytotal, <more args>)
randomForest.performance
ความสามารถในการอธิบายถึงส่วนที่สูงที่สุดของTEV
การเพิ่มขึ้นของทั่วไปเมื่อsamplesize
ลดเมื่อTEV
เป็นน้อยกว่า 50% และลดลงเมื่อTEV
สูงกว่า 50%
ดังนั้นหากrandomForest-modelfit
รายงานของคุณเช่น 15% อธิบายความแปรปรวนโดย OOB-CV และนี่คือความแม่นยำของโมเดลที่ยอมรับได้สำหรับคุณคุณอาจปรับแต่งประสิทธิภาพได้สูงขึ้นเล็กน้อยโดยลดsampsize
จำนวนการสังเกตให้ntree > 1000
เหลือหนึ่งในสาม
กำลังใจในการทำงาน : สำหรับข้อมูลที่มีเสียงดังมากจะดีกว่าการตัดต้นไม้ที่มีความสัมพันธ์มากกว่าการลดอคติโดยการปลูกต้นไม้ที่มีขนาดสูงสุด