Phản ứng phụ thuộc phân phối đáp ứng trong hồi quy rừng ngẫu nhiên


9

Tôi đang sử dụng gói RandomForest trong R (phiên bản R 2.13.1, phiên bản RandomForest 4.6-2) để hồi quy và nhận thấy sự sai lệch đáng kể trong kết quả của tôi: lỗi dự đoán phụ thuộc vào giá trị của biến phản hồi. Giá trị cao được dự đoán thấp và giá trị thấp được dự đoán quá mức. Lúc đầu, tôi nghi ngờ đây là hậu quả của dữ liệu của mình nhưng ví dụ đơn giản sau đây cho thấy đây là thuật toán rừng ngẫu nhiên:

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)

Tôi nghi ngờ sự thiên vị phụ thuộc vào sự phân phối của phản hồi, ví dụ, nếu x1được phân phối đồng đều, không có sự thiên vị; nếu x1được phân phối theo cấp số nhân, sai lệch là một chiều. Về cơ bản, các giá trị của phản hồi tại các đuôi của phân phối bình thường là các ngoại lệ. Không có gì ngạc nhiên khi một người mẫu sẽ gặp khó khăn trong việc dự đoán các ngoại lệ. Trong trường hợp của RandomForest, giá trị đáp ứng có cường độ cực lớn từ đuôi phân phối ít có khả năng kết thúc ở một lá cuối và hiệu ứng của nó sẽ bị xóa sạch trong mức trung bình chung.

Lưu ý rằng tôi đã cố gắng ghi lại hiệu ứng này trong một ví dụ trước, "RandomForest in R hồi quy tuyến tính đuôi mtry". Đây là một ví dụ xấu. Nếu độ lệch trong ví dụ trên thực sự là vốn có của thuật toán, thì điều đó có nghĩa là một sự điều chỉnh sai lệch có thể được tạo ra dựa trên phân phối đáp ứng mà người ta đang cố gắng dự đoán, dẫn đến dự đoán chính xác hơn.

Các phương pháp dựa trên cây, như rừng ngẫu nhiên, có thể bị sai lệch phân phối đáp ứng không? Nếu vậy, điều này có được cộng đồng thống kê biết trước đây không và nó thường được sửa như thế nào (ví dụ: mô hình thứ hai sử dụng phần dư của mô hình thiên vị làm đầu vào)?

Sửa lỗi sai lệch phụ thuộc vào đáp ứng là khó bởi vì về bản chất, phản ứng không được biết đến. Thật không may, phản hồi ước tính / dự đoán thường không chia sẻ cùng mối quan hệ với xu hướng.


Tôi đã suy nghĩ về câu hỏi tương tự này trong gần 12 tháng. Xem số liệu thống kê.stackexchange.com/questions/21530 / Cáchkaggle.com/forums/t/1106/random-forests-newbie-question . Tôi đồng ý rằng vấn đề dường như là các ngoại lệ không được thể hiện tốt bằng các giá trị trung bình được sử dụng làm dự đoán tại mỗi nút. Điều chỉnh dự đoán hoặc mô hình trong nút có vẻ như là cách tiếp cận hợp lý, nhưng không chắc cách tiếp cận tiêu chuẩn là gì.
redcalx

Câu trả lời:


4

Hoàn toàn đúng như bạn nghi ngờ - thực tế là các nút lá chứa phương tiện trên một số đối tượng làm cho bất kỳ mô hình cây hồi quy nào thắt chặt phân phối đáp ứng và làm cho bất kỳ phép ngoại suy nào là không thể. Bộ quần áo tất nhiên không giúp gì cho điều đó và trên thực tế làm cho tình hình tồi tệ hơn.

Giải pháp ngây thơ (và nguy hiểm vì quá nhiều) là bọc mô hình theo một kiểu hồi quy cổ điển nào đó sẽ giải quyết đáp ứng cho phân phối mong muốn của nó.

Giải pháp tốt hơn là một trong những mô hình cây trong mô hình, ví dụ như MOB trong gói tiệc. Ý tưởng ở đây là phân vùng không gian tính năng sẽ kết thúc khi vấn đề được đơn giản hóa không phải là một giá trị đơn giản (như trong cây thông thường) mà là một mối quan hệ đơn giản (nói tuyến tính) giữa phản hồi và một số dự đoán. Mối quan hệ như vậy hiện có thể được giải quyết bằng cách phù hợp với một số mô hình đơn giản sẽ không làm xáo trộn phân phối hoặc cắt giảm các giá trị cực đoan và có thể ngoại suy.


Tại sao sẽ thay đổi kích thước phân phối đáp ứng dẫn đến quá mức? Mối quan hệ đặt hàng giữa bất kỳ hai trong số các kết quả đầu ra của rừng sẽ giữ nguyên thứ tự sau khi đẩy nó qua một đa thức phù hợp để giải cứu nó, do đó việc đưa ra quyết định từ mô hình sẽ không bị ảnh hưởng nếu bạn đưa ra quyết định về lượng tử đầu ra.
Jase

Bạn đúng rồi; Tôi đã suy nghĩ về một kịch bản khi RF tạo ra câu trả lời hoàn toàn vô nghĩa và hồi quy chuyển đổi nó thành một thứ gì đó tốt hơn . R2

3

Tôi đã có chính xác vấn đề tương tự với RF có điều kiện được truy cập thông qua gói rigs. Tôi đã gửi email cho Graham Williams (tác giả của rigs) về nó, người vui lòng chuyển câu hỏi của tôi đến các tác giả cforest, người đã trả lời và đề nghị chơi với hai tham số dường như không được tham chiếu ở bất cứ đâu trong tài liệu CRF, nhưng dù sao dường như cũng giải quyết vấn đề, cụ thể là minplit = 2 và minbucket = 1.


minsplit, Tôi đoán bạn có nghĩa là
smci

2

Bạn nên ước tính giá trị tối ưu của mtry và sampize bằng cách giảm thiểu "lỗi xác thực chéo" mẫu trên một lưới các tham số mtry khác nhau, cho các biến phản ứng tương ứng cho một bộ tính năng cố định và sau đó đưa ra bất kỳ kết luận nào về mặt kết quả. Bạn có thể tạo một sự kết hợp của các tham số lưới bằng cách sử dụng Expand.grid.


2
Đây là một gợi ý tốt cho các mô hình xây dựng, nói chung các tham số được tối ưu hóa sẽ mang lại dự đoán chính xác hơn. Tuy nhiên, trong trường hợp này, sự thiên vị tồn tại bất kể điều chỉnh, theo như tôi có thể nói. Chỉ có một yếu tố dự đoán nên mtry phải là 1. Bất kỳ cỡ mẫu nào nhỏ hơn n chỉ phục vụ để phóng đại độ lệch và kích thước nút có ít ảnh hưởng.
rumbleB
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.