부가 정보(out-of-bag) 평가

랜덤 포레스트에는 검증 데이터 세트가 필요하지 않습니다. 대부분의 랜덤 포레스트는 out-of-bag-evaluation (OOB 평가)이라는 기법을 사용하여 모델의 품질을 평가합니다. OOB 평가는 학습 세트를 교차 검증의 테스트 세트에 있는 것처럼 취급합니다.

앞서 설명한 것처럼 랜덤 포레스트의 각 결정 트리는 일반적으로 학습 예시의 약 67% 를 대상으로 학습됩니다. 따라서 각 의사 결정 트리는 학습 예시의 최대 33% 를 보지 못합니다. OOB 평가의 핵심 개념은 다음과 같습니다.

  • 학습 세트에서 랜덤 포레스트를 평가합니다.
  • 각 예에서 학습 중에 예시를 보지 못한 결정 트리만 사용합니다.

다음 표는 6개의 예시를 학습한 결정 트리 3개가 있는 랜덤 포레스트의 OOB 평가를 보여줍니다. 이 표는 배깅 섹션과 같습니다. 이 테이블은 OOB 평가 중에 어떤 결정 트리가 어떤 예와 함께 사용되는지 보여줍니다.

표 7. OOB 평가 - 숫자는 주어진 학습 예의 학습 중에 해당 학습 예가 사용된 횟수를 나타냅니다.

학습 예시 OOB 평가 예시
#1 #2 #3 #4 #5 #6
원본 데이터 세트 1 1 1 1 1 1
결정 트리 1 1 1 0 2 1 1 #3
결정 트리 2 3 0 1 0 2 0 2번, 4번, 6번
결정 트리 3 0 1 3 1 0 1 1번 및 5번

표 7의 예에서 학습 예 1의 OOB 예측은 결정 트리 #3과 결정 트리 #3으로 계산됩니다 (결정 트리 #1 및 #2가 이 예를 학습에 사용했기 때문에). 실제로는 합리적인 크기의 데이터 세트와 몇 개의 결정 트리가 있는 경우 모든 예시에 OOB 예측이 있습니다.

YDF 코드
YDF에서 모델이 compute_oob_performances=True로 학습된 경우 학습 로그에서 OOB 평가를 사용할 수 있습니다.

OOB 평가는 랜덤 포레스트 모델의 순열 변수 중요도를 계산하는 데도 효과적입니다. 변수 중요도에서 순열 변수 중요도는 이 변수가 셔플될 때 모델 품질 저하를 측정하여 변수의 중요도를 측정한다는 점을 기억하세요. 랜덤 포레스트 'OOB 순열 변수 중요도'는 OOB 평가를 사용하여 계산된 순열 변수 중요도입니다.

YDF 코드
YDF에서 모델이 compute_oob_variable_importances=True로 학습된 경우 OOB 순열 변수 중요도를 학습 로그에서 사용할 수 있습니다.