อคติการตอบสนองการกระจายขึ้นอยู่กับการถดถอยป่าแบบสุ่ม


9

ฉันใช้แพ็คเกจ randomForest ใน R (R เวอร์ชั่น 2.13.1, randomForest เวอร์ชัน 4.6-2) สำหรับการถดถอยและสังเกตเห็นอคติที่สำคัญในผลลัพธ์ของฉัน: ข้อผิดพลาดในการทำนายขึ้นอยู่กับค่าของตัวแปรการตอบสนอง ค่าสูงนั้นคาดการณ์ไม่ได้และค่าต่ำจะทำนายค่ามากเกินไป ตอนแรกฉันสงสัยว่านี่เป็นผลมาจากข้อมูลของฉัน แต่ตัวอย่างง่าย ๆ ดังต่อไปนี้แสดงให้เห็นว่านี่เป็นสิ่งที่เกิดขึ้นจากอัลกอริธึมการสุ่มป่า:

n = 1000; 
x1 = rnorm(n, mean = 0, sd = 1)
response = x1
predictors = data.frame(x1=x1) 
rf = randomForest(x=predictors, y=response)
error = response-predict(rf, predictors)
plot(x1, error)

ฉันสงสัยว่าอคตินั้นขึ้นอยู่กับการกระจายตัวของการตอบสนองตัวอย่างเช่นหากx1กระจายอย่างสม่ำเสมอจะไม่มีอคติ ถ้าx1มีการแจกแจงแบบ exponential อคติคือด้านเดียว โดยพื้นฐานแล้วค่าของการตอบสนองที่ส่วนท้ายของการแจกแจงแบบปกติคือค่าผิดปกติ ไม่น่าแปลกใจเลยที่ตัวแบบจะมีปัญหาในการทำนายค่าผิดปกติ ในกรณีของป่าสุ่มค่าการตอบสนองของขนาดที่รุนแรงจากหางของการแจกแจงมีโอกาสน้อยที่จะจบลงในเทอร์มินัลใบไม้และผลของมันจะถูกชะล้างออกมาโดยเฉลี่ยในวงดนตรี

โปรดทราบว่าฉันพยายามจับภาพเอฟเฟกต์นี้ในตัวอย่างก่อนหน้านี้ "RandomForest ใน R การถดถอยเชิงเส้นหาง" นี่เป็นตัวอย่างที่ไม่ดี หากอคติในตัวอย่างข้างต้นมีอยู่จริงในอัลกอริธึมแล้วมันก็เป็นไปได้ว่าการแก้อคติสามารถกำหนดได้เนื่องจากการแจกแจงคำตอบพยายามที่จะทำนายผลที่ได้ก็คือการทำนายที่แม่นยำ

มีวิธีการที่ใช้ต้นไม้เช่นฟอเรสต์แบบสุ่มหรือไม่และอาจมีอคติในการกระจายการตอบสนองหรือไม่? หากเป็นเช่นนี้เคยเป็นที่รู้จักกันในชุมชนสถิติหรือไม่และมักจะแก้ไขอย่างไร (เช่นรุ่นที่สองที่ใช้ส่วนที่เหลือของรูปแบบลำเอียงเป็นอินพุต)

การแก้ไขอคติที่ขึ้นอยู่กับการตอบสนองนั้นเป็นเรื่องยากเพราะโดยธรรมชาติแล้วการตอบสนองนั้นไม่เป็นที่รู้จัก น่าเสียดายที่การตอบสนองโดยประมาณ / ที่คาดการณ์ไม่ได้มักจะแบ่งปันความสัมพันธ์เดียวกันกับอคติ


ฉันไตร่ตรองคำถามเดียวกันนี้มาเกือบ 12 เดือนแล้ว ดู stats.stackexchange.com/questions/21530/...และkaggle.com/forums/t/1106/random-forests-newbie-question ฉันยอมรับว่าปัญหาดูเหมือนว่าค่าผิดปกติจะไม่ได้รับการแสดงที่ดีจากค่าเฉลี่ยที่ใช้ในการทำนายที่แต่ละโหนด การปรับการทำนายหรือ model-in-node ดูเหมือนจะเป็นวิธีการที่สมเหตุสมผล แต่ไม่แน่ใจว่าวิธีการมาตรฐานคืออะไร
redcalx

คำตอบ:


4

มันสมบูรณ์แบบอย่างที่คุณสงสัย - ความจริงที่ว่าโหนดของใบไม้มีความหมายเหนือชุดของวัตถุบางอย่างทำให้ต้นไม้แบบจำลองการถดถอยกระชับการกระจายการตอบสนองและทำให้การคาดการณ์ใด ๆ เป็นไปไม่ได้ แน่นอนว่าทั้งมวลไม่ได้ช่วยอะไรเลยและในความเป็นจริงทำให้สถานการณ์แย่ลง

วิธีแก้ปัญหาที่ไร้เดียงสา (และอันตรายเนื่องจากการใส่เกิน) คือการห่อโมเดลในการถดถอยแบบคลาสสิกบางประเภทซึ่งจะช่วยลดการตอบสนองต่อการกระจายที่ต้องการ

ทางออกที่ดีกว่าคือหนึ่งในโมเดลทรี - โมเดลใบไม้เช่นอินสแตนซ์MOBในแพ็คเกจปาร์ตี้ แนวคิดในที่นี้คือการแบ่งพื้นที่ของฟีเจอร์ควรจบลงเมื่อปัญหาง่ายขึ้นไม่ใช่กับค่าง่าย ๆ (เหมือนต้นไม้ทั่วไป) แต่เป็นความสัมพันธ์อย่างง่าย (พูดเป็นเส้นตรง) ระหว่างคำตอบและตัวทำนายบางตัว ขณะนี้ความสัมพันธ์ดังกล่าวสามารถแก้ไขได้โดยการสร้างแบบจำลองที่เรียบง่ายซึ่งจะไม่รบกวนการกระจายหรือตัดค่าสุดขีดและสามารถคาดการณ์ได้


ทำไมการ rescaling การกระจายการตอบสนองจึงนำไปสู่การ overfitting? ความสัมพันธ์ในการสั่งซื้อระหว่างสองฟอเรสต์เอาท์พุทจะยังคงอยู่ในลำดับเดิมหลังจากที่กดผ่านพหุนามแบบพอดีเพื่อขายใหม่ดังนั้นการตัดสินใจจากแบบจำลองจะไม่ได้รับผลกระทบหากคุณยึดการตัดสินใจของควอไทล์
Jase

คุณพูดถูก ฉันกำลังคิดเกี่ยวกับสถานการณ์เมื่อ RF สร้างคำตอบที่ไร้สาระทั้งหมดและการถดถอยจะแปลงเป็นสิ่งที่หลอกลวงได้ดีกว่าR2.

3

ฉันมีปัญหาเดียวกันกับ Conditional RF ที่เข้าถึงผ่านแพ็คเกจสั่น ฉันส่งอีเมลเกรแฮมวิลเลียมส์ (ผู้เขียนสั่น) เกี่ยวกับเรื่องนี้ผู้ส่งต่อคำถามของฉันไปยังผู้เขียน cforest ผู้ตอบและแนะนำการเล่นด้วยพารามิเตอร์สองตัวที่ดูเหมือนจะไม่ถูกอ้างอิงที่ใดก็ได้ในเอกสาร CRF แต่ที่ดูเหมือนจะอยู่ ปัญหาคือ minplit = 2 และ minbucket = 1


minsplitฉันคิดว่าคุณหมายถึง
smci

2

คุณควรจะประเมินค่าที่ดีที่สุดของ mtry และ sampsize ด้วยการย่อตัวอย่าง "cross-validated error error" บนตารางของ mtry ที่แตกต่างกัน, พารามิเตอร์ sampsize, สำหรับตัวแปรตอบสนองที่สอดคล้องกันสำหรับชุดของคุณลักษณะที่คงที่แล้วทำการสรุปใด ๆ - ในแง่ของผลลัพธ์ คุณสามารถสร้างการรวมกันของพารามิเตอร์กริดโดยใช้ expand.grid


2
นี่เป็นข้อเสนอแนะที่ดีสำหรับแบบจำลองอาคารโดยทั่วไปพารามิเตอร์ที่ปรับให้เหมาะสมจะให้ผลการคาดการณ์ที่แม่นยำยิ่งขึ้น อย่างไรก็ตามในกรณีนี้มีอคติอยู่โดยไม่คำนึงถึงการปรับแต่งเท่าที่ฉันสามารถบอกได้ มีตัวทำนายเพียงตัวเดียวดังนั้น mtry จะต้องเป็น 1 ขนาดตัวอย่างใดก็ตามที่น้อยกว่า n จะทำหน้าที่ขยายอคติและโหนดที่มีผลกระทบน้อย
rumbleB
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.