R의 randomForest 패키지 (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지수 적으로 분포되어, 상기 바이어스는 일방적이다. 기본적으로 정규 분포의 꼬리에서의 반응 값은 특이 치입니다. 모델이 특이 치를 예측하는 데 어려움이 있다는 것은 놀라운 일이 아닙니다. randomForest의 경우, 분포의 꼬리에서 극단적 인 크기의 응답 값이 터미널 리프에서 종료 될 가능성이 적으며 그 효과는 앙상블 평균으로 제거됩니다.
이전 예제 인 "RandomForest in R linear regression tails mtry"에서이 효과를 포착하려고했습니다. 이것은 나쁜 예였습니다. 위의 예에서 편향이 알고리즘에 내재 된 경우, 예측하는 응답 분포를 고려하여 편향 보정이 공식화되어보다 정확한 예측이 가능해집니다.
임의 포리스트와 같은 트리 기반 방법은 응답 분포 편향의 영향을 받습니까? 그렇다면 이전에 통계 커뮤니티에 알려졌으며 일반적으로 어떻게 수정됩니까 (예 : 바이어스 된 모델의 잔차를 입력으로 사용하는 두 번째 모델)?
특성에 따라 응답을 알 수 없기 때문에 응답 종속 바이어스를 수정하기가 어렵습니다. 불행하게도, 추정 / 예측 된 응답은 종종 바이어스와 동일한 관계를 공유하지 않습니다.