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.