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"에서이 효과를 포착하려고했습니다. 이것은 나쁜 예였습니다. 위의 예에서 편향이 알고리즘에 내재 된 경우, 예측하는 응답 분포를 고려하여 편향 보정이 공식화되어보다 정확한 예측이 가능해집니다.
임의 포리스트와 같은 트리 기반 방법은 응답 분포 편향의 영향을 받습니까? 그렇다면 이전에 통계 커뮤니티에 알려졌으며 일반적으로 어떻게 수정됩니까 (예 : 바이어스 된 모델의 잔차를 입력으로 사용하는 두 번째 모델)?
특성에 따라 응답을 알 수 없기 때문에 응답 종속 바이어스를 수정하기가 어렵습니다. 불행하게도, 추정 / 예측 된 응답은 종종 바이어스와 동일한 관계를 공유하지 않습니다.