랜덤 포레스트에 대해보고 할 훈련 오류는 무엇입니까?


15

현재 randomForestR 의 패키지를 사용하여 분류 문제에 임의의 포리스트를 적용하고 있으며 이러한 모델의 교육 오류 를보고하는 방법에 대해 잘 모르겠습니다 .

명령으로 얻은 예측을 사용하여 계산하면 내 훈련 오류가 0 %에 가깝습니다.

predict(model, data=X_train)

X_train훈련 데이터는 어디에 있습니까 ?

관련 질문에 대한 답변에서 , 나는 가방 부족 (OOB) 훈련 오류를 임의의 숲에 대한 훈련 오류 지표로 사용해야한다는 것을 읽었습니다 . 이 수량은 다음 명령으로 얻은 예측에서 계산됩니다.

predict(model)

이 경우 OOB 학습 오류는 평균 10CV 테스트 오류 (11 %)에 훨씬 가깝습니다.

궁금:

  1. 임의 포리스트에 대한 훈련 오류 척도로 OOB 훈련 오류를보고하는 것이 일반적으로 허용됩니까?

  2. 전통적인 훈련 오류 척도가 인위적으로 낮다는 것이 사실입니까?

  3. 기존의 훈련 오차 측정 값이 인위적으로 낮은 경우 RF가 과적 합되는지 확인하기 위해 어떤 두 가지 측정 값을 비교할 수 있습니까?

답변:


10

@Soren H. Welling의 답변에 추가하십시오.

1. 무작위 산림에 대한 훈련 오류 척도로 OOB 훈련 오류를보고하는 것이 일반적으로 허용됩니까?

훈련 된 모델의 OOB 오류는 훈련 오류와 다릅니다. 그러나 예측 정확도의 척도 역할을 할 수 있습니다.

2. 전통적인 훈련 오류 척도가 인위적으로 낮다는 것이 사실입니까?

기본 설정을 사용하여 분류 문제를 실행하는 경우에 해당됩니다. 정확한 프로세스는 Andy Liaw포럼 게시물에 설명되어 있습니다 .randomForest 있으며 R 패키지를 다음과 같이 .

대부분 훈련 세트의 성능은 의미가 없습니다. (이는 대부분의 알고리즘, 특히 RF의 경우에 해당합니다.) 기본 (및 권장) 설정에서 트리는 최대 크기로 커져서 대부분의 터미널 노드에 데이터 포인트가 하나만있을 가능성이 높습니다. 터미널 노드에서의 예측은 노드의 대다수 클래스 또는 고독한 데이터 포인트에 의해 결정된다. 항상 그런 경우를 가정 해 봅시다. 즉, 모든 트리에서 모든 터미널 노드에는 하나의 데이터 포인트 만 있습니다. 특정 데이터 포인트는 포리스트에있는 나무의 약 64 %에서 "가방 내"가되며 해당 트리는 모두 해당 데이터 포인트에 대한 정확한 예측을 갖습니다. 데이터 포인트가 부족한 모든 나무가 모든 나무의 과반수 투표로 잘못된 예측을하더라도, 당신은 여전히 ​​결국 정답을 얻습니다. 따라서 기본적으로 RF에 대해 설정된 열차에 대한 완벽한 예측은 "설계 상"입니다.

이 동작을 피하기 위해 nodesize > 1(나무가 최대 크기로 자라지 않도록) 설정하거나 sampsize < 0.5N( 또는 나무의 50 % 미만이 주어진 점을 포함 할 수 있도록) 설정할 수 있습니다.(엑스나는,와이나는).

3. 기존의 훈련 오차 측정 값이 인위적으로 낮은 경우 RF가 과적 합되는지 확인하기 위해 어떤 두 가지 측정 값을 비교할 수 있습니까?

nodesize = 1and sampsize > 0.5를 사용하여 RF를 실행하면 RF 의 훈련 오류는 항상 0에 가까워집니다.이 경우 모델이 과적 합인지 여부를 확인하는 유일한 방법은 일부 데이터를 독립적 인 유효성 검사 세트로 유지하는 것입니다. 그런 다음 10-CV 테스트 오류 (또는 OOB 테스트 오류)를 독립 검증 세트의 오류와 비교할 수 있습니다. 10-CV 테스트 오류가 독립 검증 세트의 오류보다 훨씬 낮은 경우 모델이 과적 합 될 수 있습니다.


2

[편집 21.7.15 8:31 AM CEST]

분류에 RF를 사용했다고 가정합니다. 이 경우 알고리즘은 하나의 대상 클래스의 순수 터미널 노드로 완전히 성장한 트리를 생성합니다.

predict(model, data=X_train)

이 코딩 라인은 자체 꼬리의 ~ 66 %를 쫓는 개와 같습니다. 모든 훈련 샘플의 예측은 훈련 샘플 자체의 클래스입니다. 회귀의 경우 노드에 샘플이 5 개 이하이거나 노드가 순수한 경우 RF가 중지됩니다. 여기서 예측 오차는 작지만 0 %는 아닙니다.

기계 학습에서 우리는 종종 큰 가설 공간으로 작업합니다. 이것은 우리의 훈련 세트의 데이터 구조에 대해 아직 허위 가설 / 설명 / 모델이 아직 많지 않다는 것을 의미합니다. 고전 통계에서 가설 공간은 종종 작기 때문에 직접 모형 적합은 추정 된 확률 이론에 따라 유익합니다. 머신 러닝에서 직접 적합 부족 은 모델 의 편향 과 관련 이 있습니다. 바이어스는 모델의 "비 유연성"입니다. 하지 않습니다어쨌든 일반화 능력의 근사치를 제공하십시오 (새로운 사건을 예측하는 능력). 알고리즘 모델의 경우 교차 검증은 이론이 공식화되지 않았기 때문에 일반화 성능을 근사화하는 가장 좋은 도구입니다. 그러나 독립적 샘플링의 모델 가정이 실패하는 경우, 잘 수행 된 교차 검증이 달리 제안하더라도 모델은 아무 소용이 없을 수 있습니다. 결국 가장 강력한 증거는 다양한 출처의 여러 외부 테스트 세트를 만족스럽게 예측하는 것입니다.

CV로 돌아 가기 : 가방 외부는 종종 허용되는 CV 유형입니다. 나는 개인적으로 OOB-CV가 5-fold-CV와 비슷한 결과를 제공한다고 주장하지만 이것은 매우 작은 성가신 것입니다. RF와 SVM을 비교해 보면 일반적으로 SVM을 포기하지 않기 때문에 OOB-CV는 유용하지 않습니다. 대신에 SVM과 RF는 정확히 동일한 교차 검증 방식에 포함됩니다 (예 : 각 반복에 대해 일치하는 파티션이있는 10 배 10 회 반복). 모든 기능 엔지니어링 단계는 종종 교차 검증해야합니다. 일을 깨끗하게 유지하려면 전체 데이터 파이프 라인을 CV에 포함시킬 수 있습니다.

테스트 세트 (또는 교차 검증)로 모델을 조정하면 가설 공간이 다시 팽창하여 검증 된 예측 성능이 지나치게 낙관적 일 수 있습니다. 대신 튜닝을 위해 교정 세트 (또는 교정 CV- 루프)와 최종 최적 모델을 평가하기 위해 테스트 검증 세트 (또는 검증 CV- 루프)가 필요합니다.

극단적 인 의미에서, 검증 결과는이 결과를 전혀 보지 않으면 절대로 편향되지 않습니다. 이것이 우리가 행동하지 않을 경우에만 사실 인 지식을 얻는 이유이기 때문에 이것은 검증의 역설입니다. 실제로 공동체는 출판에 대한 편견을 기꺼이 받아들이고있다. 지나치게 비관적 검증을받은 연구자들이 불행히도 비관적 검증을 잘 수행 한 연구자들보다 출판 가능성이 높다. 따라서 때로는 다른 모델을 재현 할 수없는 이유가 있습니다.


감사합니다. 두 가지 질문이 있습니다. (1) 훈련 샘플의 예측은 훈련 샘플 자체의 클래스와 어떤 차이가 있습니까? 과반수 투표 절차에 사용되는 훈련 샘플을 사용하지 않는 나무가 있어야합니까? (2) 그렇다면 RF 측정이 과적 합인지 어떻게 평가할 것입니까?
Berk U.

(1) 글쎄, 나는 거기에 조금 빠르다. 나는 대답을 편집했다. 모든 샘플은 나무의 ~ 66 %에 포장됩니다. 훈련 중에 나무의 표본이 봉지되어 있다면, 예측하는 동안 동일한 노드에서 ~ 66 %로 끝나고 매번 다수결로 승리하기에 충분합니다. sampsize를 기차 샘플의 예를 들어 30 %로 낮추어이를 확인하고 0 % 분류 오류에서 상승을 확인하십시오. (2) 내가 대답했다고 생각합니다. RF는 그 자체로 과적 합하지는 않지만, 과도하게 낙관적 인 OOB-CV 결과를 얻을 수있는 튜닝과 같은 컨텍스트를 생성 할 수 있습니다. 전체 프로세스를 새로운 CV에 포함시켜 확실하게 알 수 있습니다.
Soren Havelund Welling
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.