랜덤 포레스트는 특이 치에 어떻게 민감하지 않습니까?


33

I는 다음과 같은 몇 가지 소스에서 읽은 이 한 임의의 숲 (예를 들어, 로지스틱 회귀 및 기타 ML 방법이하는 방식) 이상치에 민감하지 않은 것을.

그러나 두 가지 직관은 그렇지 않다고 말합니다.

  1. 의사 결정 트리가 구성 될 때마다 모든 포인트가 분류되어야합니다. 즉, 특이 치조차도 분류되므로 부스팅 중에 선택한 의사 결정 트리에 영향을 미칩니다.

  2. 부트 스트랩은 RandomForest가 서브 샘플링을 수행하는 방법의 일부입니다. 부트 스트랩은 이상치에 취약합니다.

동의하지 않는 출처를 가지고 특이 치에 대한 민감도에 대한 내 직감을 조정하는 방법이 있습니까?


아래의 답변은 매우 좋습니다. 직관적 인 대답은 의사 결정 트리가 스플릿에서 작동하고 스 플리트는 이상 값에 민감하지 않다는 것입니다. 스 플리트는 두 그룹의 포인트 사이에 위치하여 스플릿해야합니다.
Wayne

따라서 min_samples_leaf_nodeis 1인 경우 이상치에 취약 할 수 있다고 가정합니다 .
Hunle

예 min_samples 및 부트 스트랩 샘플은 RF 회귀에서 1b 이상치의 영향을 완전히 제거 할 수 있습니다.
Soren Havelund Welling

일부 통계학자는 예측과 이해가 가능한 해당 이너에 대한 터널 비전을 얻습니다. 특이 치를 '알려진 미지수'로 소중히 여기고 비즈니스 모델이 취약한 지 궁금합니다. 일부 특이
치는

답변:


21

직감이 맞습니다. 이 답변은 단지 예를 보여줍니다.

CART / RF가 어떻게 든 이상치에 강하다 는 것은 일반적인 오해입니다.

단일 특이 치의 존재에 대한 RF의 견고성 부족을 설명하기 위해, 위의 Soren Havelund Welling의 답변에 사용 된 코드를 (약간) 수정하여 단일 'y'- 이상 치가 적합 RF 모델을 완전히 좌우할 수 있음을 보여줍니다 . 예를 들어, 오염되지 않은 관측치 의 평균 예측 오차 특이 치와 나머지 데이터 사이의 거리의 함수로 계산 하면 원래 관측치 중 하나를 대체 하여 단일 특이 치를 소개 하는 (아래 이미지)를 볼 수 있습니다 'y'- 공간의 임의의 값)은 RF 모델의 예측을 원본 (오염되지 않은) 데이터에서 계산할 경우의 값에서 임의로 멀어지게하기에 충분합니다.

 library(forestFloor)
library(randomForest)
library(rgl)
set.seed(1)

X = data.frame(replicate(2,runif(2000)-.5))
y = -sqrt((X[,1])^4+(X[,2])^4)
X[1,]=c(0,0);
y2<-y
rg<-randomForest(X,y)   #RF model fitted without the outlier
outlier<-rel_prediction_error<-rep(NA,10)

for(i in 1:10){
    y2[1]=100*i+2
    rf=randomForest(X,y2)   #RF model fitted with the outlier
    rel_prediction_error[i]<-mean(abs(rf$predict[-1]-y2[-1]))/mean(abs(rg$predict[-1]-y[-1]))
    outlier[i]<-y2[1]
}
plot(outlier,rel_prediction_error,type='l',ylab="Mean prediction error (on the uncontaminated observations) \\\ relative to the fit on clean data",xlab="Distance of the outlier")

여기에 이미지 설명을 입력하십시오

얼마나 멀리? 위의 예에서 단일 특이 치가 적합을 크게 변경 하여 오염되지 않은 데이터에 모델을 적용한 경우, 평균 예측 오류 (오염되지 않은) 관측치가 현재 보다 1-2 배 더 큽니다.

따라서 단일 특이 치가 RF 적합에 영향을 줄 수 없다는 것은 사실이 아닙니다.

또한 다른 곳 에서 지적한 것처럼 잠재적으로 여러 개가 있을 때 특이 치가 다루기가 훨씬 어렵 습니다 ( 효과가 나타나기 위해 많은 의 데이터 가 필요하지는 않음 ). 물론 오염 된 데이터에는 둘 이상의 특이 치가 포함될 수 있습니다. RF 적합치에 대한 여러 특이 치의 영향을 측정하려면 오염되지 않은 데이터의 RF에서 얻은 왼쪽의 플롯과 응답 값의 5 %를 임의로 이동하여 얻은 오른쪽의 플롯을 비교하십시오 (코드는 답변 아래) .

여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오

마지막으로 회귀 컨텍스트에서 특이 치가 설계 및 응답 공간의 대량 데이터에서 두드러 질 수 있음을 지적하는 것이 중요합니다 (1). RF의 특정 상황에서 설계 이상 치는 하이퍼 파라미터의 추정에 영향을 미칩니다. 그러나이 두 번째 효과는 차원 수가 클 때 더 분명합니다.

여기서 우리가 관찰하는 것은 더 일반적인 결과의 특별한 경우입니다. 볼록 손실 함수를 기반으로하는 다변량 데이터 피팅 방법의 특이 치에 대한 극도의 감도가 여러 번 다시 발견되었습니다. ML 방법의 특정 상황에 대한 그림은 (2)를 참조하십시오.

편집하다.

에스=인수최대에스[var((에스))+아르 자형var(아르 자형(에스))]

아르 자형에스아르 자형에스아르 자형=1아르 자형. 그런 다음 원래 정의에 사용 된 분산 기능을 강력한 대안으로 대체하여 회귀 트리 (및 RF)에 "y"공간 견고성을 부여 할 수 있습니다. 이는 본질적으로 분산이 강력한 M 추정기 스케일로 대체되는 (4)에서 사용 된 접근법입니다.

  • (1) 다변량 특이 치 및 레버리지 점 마스킹 해제. Peter J. Rousseeuw와 Bert C. van Zomeren 미국 통계 협회 저널 Vol. 85, No. 411 (Sep., 1990), 633-639 쪽
  • (2) 랜덤 분류 노이즈는 모든 볼록한 잠재적 부스터를 물리칩니다. Philip M. Long과 Rocco A. Servedio (2008). http://dl.acm.org/citation.cfm?id=1390233
  • (3) C. Becker and U. Gather (1999). 다변량 이상치 식별 규칙의 마스킹 분석 지점.
  • (4) Galimberti, G., Pillati, M., & Soffritti, G. (2007). M 추정값을 기반으로하는 강력한 회귀 트리 Statistica, LXVII, 173–190.

    library(forestFloor)
    library(randomForest)
    library(rgl)
    set.seed(1)

    X<-data.frame(replicate(2,runif(2000)-.5))
    y<--sqrt((X[,1])^4+(X[,2])^4)
    Col<-fcol(X,1:2) #make colour pallete by x1 and x2
    #insert outlier2 and colour it black
    y2<-y;Col2<-Col
    y2[1:100]<-rnorm(100,200,1);    #outliers
    Col[1:100]="#000000FF" #black

    #plot training set
    plot3d(X[,1],X[,2],y,col=Col)
    rf=randomForest(X,y)    #RF on clean data
    rg=randomForest(X,y2)   #RF on contaminated data
    vec.plot(rg,X,1:2,col=Col,grid.lines=200)
    mean(abs(rf$predict[-c(1:100)]-y[-c(1:100)]))
    mean(abs(rg$predict[-c(1:100)]-y2[-c(1:100)]))

자세한 답변 주셔서 감사합니다. 동일한 고차원 공간에 여러 특이 치가있는 경우 "이상치"라고하는 기준이 무엇인지 질문합니다. 이 경우, 이상 값에 대한 기준을 지정할 수 있도록 어떤 하이퍼 매개 변수를 설정할 수 있는지 궁금합니다.
Hunle

1
이전 답변을 답변에 추가했습니다. 귀하의 질문에 더 잘 대답하기를 바랍니다.
user603

1
감사. 무엇 ps수식에?
Hunle

1
결합 특이 치 (1a + 2)가 나쁜 이유는 무엇입니까? 귀하의 예에서, RF 모델은 99,99 % OOB MSE의 데이터 구조에 완벽하게 맞습니다. 두 군집 사이의 중간 대지의 모델 구조는 상당히 거칠며, 데이터보다 모형의 산물입니다. 그러나이 알 수없는 영역에는 추론 및 / 또는 예측이 없어야하므로 중요하지 않습니다. 특이 치에 대한 절대적인 견고성은 불가피하지만 드물지만 중요한 사건을 무시하는 것이 불가피합니다. 대부분의 ML 알고는 기본적으로 견고성과 '유연성'사이의 중간 입장을 취하지 만 견고성을 높이기 위해 조정할 수 있습니다.
Soren Havelund Welling

1
@ user603 Franz Kafka의 The Trial을 사용하여 어두움의 마음을 제외하고 Heart of Darkness 외에 기술 토론에 추가 할 내용은 거의 없었습니다 (완료되고 영어로 작성된 경우에는 처음이었을 수도 있음) 다시 말하지만, 그것이 끝나지 않았을 수도 있습니다.) 나는 BS의 바다 "심각한 문학"의 바다에서 (암흑의 심장과 시험판)을 (우수한) 특이점으로 간주 한 것 외에는 특이점으로부터 생각하지 않았습니다. 같은 분석에.
Mark L. Stone

11

특이 치 1a : 이 특이 치에는 하나 이상의 극한 피쳐 값이 있으며 다른 시료와 멀리 떨어져 있습니다. 특이 치는 다른 표본과 같이 나무의 초기 분할에 영향을 미치므로 강력한 영향은 없습니다. 다른 샘플과의 근접성 이 낮으며 형상 공간의 원격 부분에서만 모델 구조를 정의합니다. 예측 동안 대부분의 새로운 샘플은이 특이 치와 유사하지 않을 가능성이 높으며 동일한 터미널 노드에서 거의 끝나지 않습니다. 또한 의사 결정 트리는 기능을 서수 (순위) 인 것처럼 간주합니다. 값이 중단 점보다 작거나 같으므로 피쳐 값이 극단적 인 이상 값인지는 중요하지 않습니다.

특이 치 1b : 분류를 위해 하나의 단일 시료는 다른 등급의 많은 시료의 중간에 포함 된 경우 특이 치로 간주 될 수 있습니다. 나는 기본 RF 모델이 홀수 클래스의이 하나의 샘플에 의해 어떻게 영향을 받는지에 대해 설명했지만 샘플과 매우 가깝습니다.

특이 치 2 : 이 특이 치는 목표 값이 다른 값보다 몇 배나 높지만 피처 값은 정상입니다. 트리의 .631 부분에는이 샘플의 터미널 노드가 있습니다. 모델 구조는 특이 치에 가깝게 로컬로 영향을받습니다. 노드가 일변 적으로 분할되기 때문에 모델 구조가 주로 피처 축에 평행하게 영향을받습니다.

와이=(엑스14+엑스24)12엑스1엑스2

여기에 이미지 설명을 입력하십시오

library(forestFloor)
library(randomForest)
library(rgl)
set.seed(1)

X = data.frame(replicate(2,runif(2000)-.5))
y = -sqrt((X[,1])^4+(X[,2])^4)^1
Col = fcol(X,1:2) #make colour pallete by x1 and x2
#insert outlier2 and colour it black
X[1,] = c(0,0);y[1]=2 ;Col[1] = "#000000FF" #black

#plot training set
plot3d(X[,1],X[,2],y,col=Col)

rf = randomForest(X,y)
vec.plot(rf,X,1:2,col=Col,grid.lines = 400)

편집 : user603에게 의견

예. 목표 규모의 극한 이상치의 경우 RF를 실행하기 전에 목표 규모를 변환하는 것을 고려해야합니다. randomForest 를 조정 하는 robustModel () 함수 아래에 추가 했습니다. 다른 솔루션은 훈련 전에 변환을 기록하는 것입니다.

.
##---code by user603
library(forestFloor)
library(randomForest)
library(rgl)
set.seed(1)

X<-data.frame(replicate(2,runif(2000)-.5))
y<--sqrt((X[,1])^4+(X[,2])^4)
Col<-fcol(X,1:2) #make colour pallete by x1 and x2

#insert outlier2 and colour it black
y2<-y;Col2<-Col
y2[1:100]<-rnorm(100,200,1);    #outliers
Col2[1:100]="#000000FF" #black
##---

#function to make models robust
robustModel = function(model,keep.outliers=TRUE) {
  f = function(X,y,lim=c(0.1,.9),keep.outliers="dummy",...) {
  limits = quantile(y,lim)
  if(keep.outliers) {#keep but reduce outliers
  y[limits[1]>y] = limits[1] #lower limit
  y[limits[2]<y] = limits[2] #upper limit
  } else {#completely remove outliers
    thrashThese = mapply("||",limits[1]>y,limits[2]>y)
    y = y[thrashThese]
    X = X[thrashThese,]
  }
  obj = model(x=X,y=y,...)
  class(obj) = c("robustMod",class(obj))
  return(obj)
  }
  formals(f)$keep.outliers = keep.outliers
  return(f)
}

robustRF = robustModel(randomForest) #make RF robust
rh = robustRF(X,y2,sampsize=250)     #train robustRF
vec.plot(rh,X,1:2,col=Col2)          #plot model surface
mean(abs(rh$predict[-c(1:100)]-y2[-c(1:100)]))

여기에 이미지 설명을 입력하십시오


"다른 예측에는 영향을 미치지 않습니다"라고 씁니다. 단일 특이 치를 이동하여 오염되지 않은 관측치에 대한y[1]=200 예측 오류 가 20 배만큼 증가 함을 알 수 있습니다!
user603

@ user603 사실, 그러한 경우에 타겟 스케일은 RF로 전달되기 전에 단조롭게 변환 될 수 있습니다. 내 대답에 'robustModel : 모델을 견고하게 만듭니다'를 추가했습니다. 물론 이러한 임의의 대상 이상치 (유형 2)를 예측하는 것은 불가능하지만 나머지 모델 구조는 겪을 필요가 없습니다.
Soren Havelund Welling

로그 변환은 일반적으로 특이 치에 대한 솔루션아닙니다 (단지 문제를 숨 깁니다). 제안한 RF의 강화는 본질적으로 Galimberti, G., Pillati, M. 및 Soffritti, G에서 옹호 된 접근 방식입니다 (제 답변 참조). 가장 큰 차이점은 "robustModel"접근 방식은 응답 공간에서 최대 고장 점이 25 %이고 (25 % 또는 임의의 'y'- 이상 값을 견딜 수 있음) bdp가 50 %라는 점입니다. 디자인 공간에서 특이 치에
강함

8

이상치에 강인한 것은 랜덤 포레스트 알고리즘 자체가 아니라 기본 학습자 인 의사 결정 트리 입니다. 의사 결정 트리는 비정형 관측 값을 작은 잎 (예 : 원래 공간의 작은 부분 공간)으로 분리합니다. 또한 의사 결정 트리는 로컬 모델입니다. 전체 공간에 대해 동일한 방정식이 적용되는 선형 회귀와 달리 매우 간단한 모델이 각 하위 공간 (즉, 각 리프)에 로컬로 적합합니다.

  • 회귀의 경우 일반적으로 매우 낮은 회귀 모델입니다 (일반적으로 잎의 관측치 평균).
  • 분류의 경우 다수결입니다.

따라서 회귀 분석의 경우 극단적 인 값은 로컬로 평균화되기 때문에 전체 모델에 영향을 미치지 않습니다. 따라서 다른 값에 대한 적합도 영향을받지 않습니다.

실제로,이 바람직한 특성은 덴도 그램 (dendogram)과 같은 다른 나무 형 구조로 이어진다. 예를 들어 계층 적 클러스터링은 비정상적인 관측 값을 작은 클러스터로 자동 분리하므로 데이터 정리에 오랫동안 사용되어 왔습니다. 예를 들어 Loureiro et al. (2004). 클러스터링 방법을 사용한 이상치 탐지 : 데이터 정리 응용 프로그램 .

간단히 말해서 RF는 재귀 분할로컬 모델 피팅 에서 특이 치에 대한 무감각을 상속합니다. .

의사 결정 트리는 편향이 적지 만 분산 모델이 높습니다. 그 구조는 훈련 세트를 약간 수정하면 변경되는 경향이 있습니다 (몇 가지 관측치 제거 또는 추가). 그러나 이것은 특이 치에 민감하게 착각해서는 안됩니다. 이것은 다른 문제입니다.


실제로는 이상치 탐지에 클러스터링 방법을 사용하는 것이 좋습니다. 그러나 클러스터링을 적용 할 위치를 잘 모르겠습니다. labeled또는 unlabeled데이터에 적용해야합니까 ? 그리고 범주 형 및 수치 적 특징을 모두 포함하는 이기종 데이터에서이 클러스터링을 어떻게 달성 할 수 있습니까?
Hunle
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.