scikit-learn 부트 스트랩 기능이 테스트 세트를 다시 샘플링하는 이유는 무엇입니까?


15

모델 평가에 부트 스트랩을 사용할 때 항상 가방 외부 샘플이 테스트 세트로 직접 사용되었다고 생각했습니다. 그러나 이것은 더 이상 사용되지 않는 scikit-learnBootstrap 접근법 의 경우가 아닌 것으로 보입니다. 이것에 대한 통계적 추론은 무엇입니까? 이 기술이 백 오브 샘플을 평가하는 것보다 좋은 특정 시나리오가 있습니까?


교차 검증? 리샘플링?
EngrStudent

태그를 언급하는 경우 태그가 추가되지 않았습니다. 실제로 CV의 대안으로 부트 스트랩하고 있습니다.
gibberfish

당신이 오해하는 것 같아요 교차 검증에서는 데이터의 하위 집합에서 프로세스를 여러 번 반복하고 결과 또는 모델 매개 변수의 변동을 살펴 봅니다. 이 경우 모수 변이 자체는 적합도를 나타내며 반드시 OOB 오류는 아닙니다. 특정 라이브러리에 익숙하지 않으므로 아이디어에 대한 의견을 남겼습니다.
EngrStudent

답변:


3

부트 스트랩 샘플은 많은 반복으로 알고리즘의 성능을 평가하는 데 사용됩니다. 그렇게하는 동안 무작위로 변경된 세트의 성능이 평가됩니다.

반대로 10 개의 교차 교차 검증을 수행 할 때 다른 열차 및 테스트 데이터 세트에서 10 회 반복 만 수행합니다.

이제 샘플 크기가 작 으면 이라고 말하고 부트 스트랩 반복 횟수가 높고 선택할 수 있으며 열차 데이터 세트와 마찬가지로 테스트 데이터를 리샘플링하지 않으면 다음과 같은 상황이 발생합니다. 알고리즘은 두 번 이상 동일하거나 매우 유사한 테스트를 봅니다. 부트 스트랩을 사용하여 원래 피하고 싶었던 상황.n=20i=10,000

postet 링크가 다운되었으므로 sklearn의 현재 (0.14) 버전에서 함수에 대한 설명을 추가했습니다.

방법 설명

교차 교차 검증 반복자를 사용한 무작위 샘플링 입력 n_iter 시간을 재 샘플링하는 동안 열차 테스트 세트에서 데이터를 분할하기 위해 열차 / 테스트 인덱스를 제공합니다. 새로운 임의의 데이터 분할이 수행 될 때마다 각 측에서 샘플이 교체됩니다 (교체 포함). 훈련 및 테스트 세트를 구축하기 위해 분할. 참고 : 다른 교차 검증 전략과 달리 부트 스트랩을 사용하면 각 분할에서 일부 샘플이 여러 번 발생할 수 있습니다. 그러나 열차 분할에서 발생하는 샘플은 시험 분할에서 발생하지 않으며 그 반대도 마찬가지입니다. 각 샘플이 최대 한 번 발생하도록하려면 ShuffleSplit 교차 검증을 대신 사용해야합니다.


2

아마도 당신은 무언가에 있었을 것입니다. 다른 사람들이 같은 스레드를 끌어 들인 것처럼 시도되고 진정한 접근 방식 으로이 방법 Bootstrap을보다 의도적으로 사용하기 위해 더 이상 사용되지 않습니다 .resamplesklearn.cross_validationStratifiedKFold

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