랜덤 포레스트 모델에서 정확도의 평균 감소 및 평균 감소 GINI를 해석하는 방법


34

Random Forest 패키지의 변수 중요도 출력을 해석하는 방법을 이해하는 데 어려움이 있습니다. 평균 정확도 감소는 일반적으로 "각 기능의 값을 변경하여 모델 정확도가 감소 함"으로 설명됩니다.

이 기능이 전체 기능 또는 기능 내 특정 값에 대한 설명입니까? 두 경우 모두 모형에서 문제의 특징 (또는 특징의 값)을 제거하여 정확도의 평균 감소가 잘못 분류 된 관측치의 수 또는 비율입니까?

다음 모델이 있다고 가정하십시오.

require(randomForest)
data(iris)
set.seed(1)
dat <- iris
dat$Species <- factor(ifelse(dat$Species=='virginica','virginica','other'))
model.rf <- randomForest(Species~., dat, ntree=25,
importance=TRUE, nodesize=5)
model.rf
varImpPlot(model.rf)

Call:
 randomForest(formula = Species ~ ., data = dat, ntree = 25,
 proximity = TRUE, importance = TRUE, nodesize = 5)

Type of random forest: classification
Number of trees: 25
No. of variables tried at each split: 2

        OOB estimate of  error rate: 3.33%
Confusion matrix:
          other virginica class.error
other        97         3        0.03
virginica     2        48        0.04

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

이 모델에서는 OOB 비율이 다소 낮습니다 (약 5 %). 그러나이 측정에서 가장 높은 값을 갖는 예측 변수 (Petal.Length)의 평균 정확도 감소는 약 8입니다.

이는 모델에서 Petal.Length를 제거하면 평균 8 개 정도의 추가 오 분류 만 발생한다는 의미입니까?

Petal.Length의 평균 정확도가 어떻게이 측정 값에서 가장 높고 다른 변수가이 측정 값에서 더 낮을 때 어떻게 낮아질 수 있습니까?


DAT <시도 - 조리개 [C (2 : 3.5)] 및 높은 VI - 값을 받아야
소렌 Havelund 솟아

답변:


26

" 이 기능은 전체 기능 또는 기능 내 특정 값에 대한 설명입니까? "

  • "글로벌"변수의 중요성 은 주어진 변수가 훈련 후에, 그러나 예측 전에 치환 될 때, 가방 외부에서 교차 검증 된 모든 예측에 대한 정확도의 평균 감소입니다. "글로벌" 은 암시 적입니다. 지역 변수의 중요도 는 각 개별 포장 외부 교차 검증 된 예측에 의한 평균 정확도의 감소입니다. 전역 변수의 중요성은 변수 당 단일 숫자이므로 이해하기 쉽고 모든 예측에 대해 평균화되므로 더 강력하므로 가장 널리 사용됩니다.

" 두 경우 모두 정확도의 평균 감소는 문제가되는 피처 (또는 피처의 값)를 모형에서 제거하여 잘못 분류 된 관측치의 수 또는 비율입니까? "

  1. 기차 숲
  2. 가방 외부 CV 정확도 측정 → OOB_acc_base
  3. 순열 변수 i
  4. 가방 외부 CV 정확도 측정 → OOB_acc_perm_i
  5. VI_i =-(OOB_acc_perm_i-OOB_acc_base)

- " 이것은 모델에서 Petal.Length를 제거하면 평균 8 개 정도의 추가 오 분류 만 발생한다는 의미입니까? "

  • 네. Petal.length와 Petal.width만으로도 거의 완벽한 선형 분리가 가능합니다. 따라서 변수는 중복 정보를 공유하며 순열만으로는 모델을 방해하지 않습니다.

" Petal.Length의 평균 정확도 감소가 어떻게이 측정 값에서 가장 높고 다른 변수가이 측정 값에서 더 낮을 때 어떻게 낮아질 수 있습니까? "

  • 강력하고 정규화 된 모델이 중복 변수에 대해 훈련되면 단일 변수의 순열에 상당히 강합니다.

주로 변수의 유용성을 평가하기 위해 변수 중요도를 사용하십시오. 변수 중요성의 절대 값에 대한 명확한 해석은 잘 수행하기 어렵습니다.

GINI : GINI의 중요성은 주어진 변수의 분할로 순도의 평균 이득을 측정합니다. 변수가 유용한 경우 혼합 레이블이 지정된 노드를 순수한 단일 클래스 노드로 분할하는 경향이 있습니다. 순열 변수에 의한 분할은 노드 순도를 증가 시키거나 감소시키지 않는 경향이 있습니다. 유용한 변수를 치환하면 평균 gini-gain이 상대적으로 크게 감소하는 경향이 있습니다. GINI의 중요성은 임의의 포리스트가 사용 가능한 최상의 분할을 선택하기 위해 사용하는 로컬 의사 결정 기능과 밀접한 관련이 있습니다. 따라서 계산하는 데 시간이 많이 걸리지 않습니다. 반면에, 로컬 스플릿에서의 평균 Gini-gain은 전체 모델 성능의 변화와 반대로 측정하기에 가장 유용한 것은 아닙니다. Gini 중요도는 상대적으로 편향되고 불안정하며보다 간접적 인 질문에 대답하는 경향이 있기 때문에 (순열 기반) 변수 중요도보다 전반적으로 열등합니다.


순위 간단한 넘어 변수 중요성을 해석 들어, 체크 아웃 : "분류 문제에 대한 이중 변수 변수 선택" -Vivian W. 잉과 레오 브레이 만의 digitalassets.lib.berkeley.edu/sdtr/ucb/text/692.pdf
소렌 Havelund 솟아

답변 해 주셔서 감사합니다. OOB 오류율이 증가함에 따라 정확도의 평균 감소를 설명하는 곳이 있습니다 (그래서 백분율). 게시 한 수식은 오류율 (OOB_acc_perm_i-OOB_acc_base)을 제안하는 것으로 보입니다. 그러나 정확도의 평균 감소가 잘못 분류 된 관측치 수를 의미한다고 확신합니까?
FlacoT

1
변수의 중요성이 감소하기 때문에 마이너스 앞을 기억하십시오. 나는 단위에 너무 구체적이지 않았으며, 이들은 % 또는 순수한 비율 / 비율로 표현 될 수 있지만 중요하지 않습니다. 그러나 예는 정확도 = 1-error_rate, VI_i = error_rate_perm_i-error_rate_base입니다. 회귀의 경우 순열 변수 중요도 단위는 일반적으로 % 설명 분산의 감소이며, 중요도 단위는 평균 _ 평균 _ 오류 게인의 평균 감소입니다. "하지만 정확도의 평균 감소가 잘못 분류 된 관측치의 수를 나타내는 것은 확실합니까? "-아니오, 정확도는 계수가 아니라 분수입니다.
Soren Havelund Welling

10

다음은 randomForest의 도움말 매뉴얼에서 평균 정확도 감소 (MDA)에 대한 설명입니다.

첫 번째 측정 값은 순열 OOB 데이터에서 계산됩니다. 각 트리에 대해 데이터의 백 부족 부분에 대한 예측 오류가 기록됩니다 (분류 오류율, 회귀 MSE). 그런 다음 각 예측 변수를 치환 한 후에도 동일하게 수행됩니다. 두 나무의 차이는 모든 나무에서 평균화되고 그 차이의 표준 편차에 의해 정규화됩니다. 변수의 차이의 표준 편차가 0 인 경우 나누기가 수행되지 않습니다 (그러나이 경우 평균은 거의 항상 0입니다).

설명에 따르면 MDA의 "정확도"는 실제로 포리스트 의 오류율에 더 관심이 있다는 사실에 관계없이 단일 트리 모델 의 정확성을 나타냅니다 . 그래서,

"이것은 모델에서 Petal.Length를 제거하면 평균 8 정도의 추가 오 분류 만 발생한다는 것을 의미합니까?"

  • 위의 정의 첫째, (기본적으로 축소)이 MDA는 더 검정 통계량과 같다 : 척도는 관측치의 백분율 또는 개수가 아닙니다.

    Mean(Decreases in Accuracy of Trees)StandardDeviation(Decreases in Accuracy of Trees)
  • 둘째, 스케일링되지 않은 MDA, 즉 조차도 숲 모델의 정확성 (투표에 의한 전체 에 대해서는 아무 것도 말하지 않습니다.Mean(Decreases in Accuracy of Trees)

요약하면, 랜덤 포레스트 패키지로 MDA 출력 오류 비율도 오류 카운트에 대해 어느 쪽도 없지만, 더 나은 가설 검정의 검정 통계량으로 해석 : 대 구성된 노드  가 단일 트리에서 쓸모 없음 H 1 : 예측 자 i  로 구성된 노드  가 유용합니다

H0:Nodes constructed by predictor i is useless in any single trees
H1:Nodes constructed by predictor i is useful

Soren이 설명한 MDA 절차는 randomForest 패키지의 구현과 다릅니다. MDA에서 원하는 것에 더 가깝습니다. 전체 포리스트 모델의 정확도가 떨어집니다. 그러나이 모델은 Petal.Length없이 다르게 장착 될 수 있으며 다른 예측 변수에 더 많이 의존합니다. 따라서 소렌의 MDA는 너무 비관적 일 것입니다.


두 가지 후속 질문 : 1. 다른 패키지가 @Soren이 설명하는보다 직관적 인 MDA를 사용하는지 아십니까? 2. RandomForest에서 MDA의 해석이 검정 통계량 인 경우, H0를 기각하기에 충분히 큰 검정 통계량에 대한 규칙과 같은 것이 있습니까? MDA가 알려진 배포판을 따르고 있습니까?
FlacoT

1. 죄송합니다. 다른 패키지는 시도하지 않았습니다. 2. 테스트 통계와 비슷합니다. 배포판에 접근 할 수 없거나 (이것에 대해 조사한 사람이 거의없는 한) 테스트 자체도 의미가 없습니다. 테스트에서 우리의 실제 관심사 인 FOREST에 대해 결론을 내릴 수 없다고 생각합니다.
Jianyu

4

샌프란시스코 대학 (University of San Francisco) 팀 의 최근 (블로그 게시물) [ https://explained.ai/rf-importance/index.html]에 따르면 R (randomForest) 및 Python (scikit)의 기본 중요 전략은 신뢰할 수 없음 많은 데이터 시나리오에서. 특히, 잠재적 예측 변수가 측정 척도 또는 범주 수에서 변할 때 불순물 중요도 메트릭의 평균 감소가 바이어스됩니다.

논문 및 블로그 게시물은 범주가 적은 변수와 비교하여 정보가 덜 중요하더라도 불순물 중요도 순위의 평균 감소에서 연속적이고 높은 카디널리티 변수가 선호되는 방법을 보여줍니다. 저자는 이러한 경우 기본값 대신 순열 중요도를 사용하도록 제안합니다. 모형의 예측 변수가 서로 관련이있는 경우 조건부 순열 중요도가 제안됩니다.

불순물은 변수에서 중단 점이 선택 될 때마다 변수의 모든 수준이 테스트되어 최상의 중단 점을 찾기 때문에 바이어스됩니다. 연속성 또는 높은 카디널리티 변수는 더 많은 분리 점을 가지므로 "다중 테스트"문제가 발생합니다. 즉, 더 많은 분할이 시도되는 변수가 트리에 더 자주 표시되므로 변수가 결과를 잘 예측할 확률이 높아집니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.