k- 폴드 교차 검증의 분산 추정치


27

K- 폴드 교차 검증은 주어진 분류기의 일반화 능력을 추정하는 데 사용될 수 있습니다. 분산의 더 나은 추정치를 얻기 위해 모든 검증 실행에서 풀링 된 분산을 계산할 수 있습니까?

그렇지 않다면 왜?

교차 검증 실행에서 풀링 된 표준 편차를 사용하는 논문을 발견했습니다 . 나는 또한 검증 분산에 대한 보편적 추정기 가 없다는 논문을 발견했다 . 그러나 일반화 오류에 대한 분산 추정치를 보여주는 논문도 발견했습니다 (여전히 읽고 이해하려고합니다). 사람들은 실제로 실제로 무엇을하거나보고합니까?

편집 : CV가 원유 분류 오류를 측정하는 데 사용되는 경우 (즉, 샘플에 올바르게 레이블이 지정되었거나 예를 들어 true 또는 false가 아닌 경우) 풀링 된 분산에 대해 이야기하는 것이 이치에 맞지 않을 수 있습니다. 그러나 우리가 추정하는 통계에 분산이 정의되어있는 경우에 대해 이야기하고 있습니다. 따라서 주어진 폴드에 대해 통계 값과 분산 추정 값으로 끝날 수 있습니다. 이 정보를 버리고 평균 통계 만 고려하는 것은 옳지 않은 것 같습니다. 그리고 부트 스트랩 방법을 사용하여 분산 추정치를 작성할 수 있다는 것을 알고 있지만 (잘못되지 않은 경우) 여전히 폴드 분산을 무시하고 통계 추정 만 고려합니다 (더 많은 계산 능력이 필요함).


서로 크게 다른지 확인하는 두 가지 가능한 방법을 고려하여 분산을 계산 했습니까?
zeferino

그래, 내가 했어. 일부 실험에서 훈련 샘플에 대한 분산과 풀링 된 분산간에 약 10 배 정도의 변화가있었습니다. 유효성 검사 샘플에는 큰 차이가 없었습니다. 더 큰 변화는 덜 정확한 모델과 관련이있는 것 같습니다.
Cesar

1
@Cesar : 훌륭한 관찰 : 모델이 매우 불안정합니다 (반복 간격이 높음). 분류에서 (분류자가 추측보다 나쁜 경우가 아니라면) 불안정한 예측은 잘못된 예측으로 이어집니다. 이에 대한 예시적인 생각은 정확한 예측으로부터의 편차가 항상 "잘못"방향으로있을 것이고, 너무 낮 으면 취소 될 너무 높지 않다는 것이다.
cbeleites는 Monica

1
@cbeleites : 큰 편차 변화가 대부분 더 높은 오류율을 보이는 모델에서 발생하기 때문에 이것이 다소 예상되지 않습니까? 그건 그렇고, 당신의 대답에 좋은 업데이트. 나는 아직도 더 자세히 읽어야하지만, 나는 이미 매우 감사합니다. 감사.
Cesar

1
@Cesar : Thx. 물론 비율에 대한 분산 공식 인 상태를 설명하는 덜 예시적인 방법이 예상됩니다 (내 대답 참조). 실제 오류율이 극단 일수록 분산이 낮을수록 최대 분산은 오류율 = 50 %입니다.
cbeleites는 Monica

답변:


13

매우 흥미로운 질문입니다. 나는 당신이 제공 한 논문을 읽어야 할 것입니다. 그러나 아마도 이것은 대답의 방향으로 우리를 시작할 것입니다.

나는 일반적 으로이 문제를 매우 실용적인 방법으로 해결합니다. 나는 새로운 임의 분할로 k- 폴드 교차 검증을 반복하고 각 반복마다 평소와 같이 성능을 계산합니다. 그런 다음 전체 테스트 샘플은 각 반복마다 동일하며 차이는 서로 다른 데이터 분할에서 비롯됩니다.

이것은 예를 들어 관찰 된 성능 wrt의 5 ~ 95 번째 백분위 수로보고됩니다. 최대 n 까지 교환nk1새로운 표본에 대한 표본을 모아 모형 불안정성에 대한 척도로서 논의합니다.

참고 : 어쨌든 샘플 크기가 필요한 수식을 사용할 수 없습니다. 내 데이터가 구조적으로 모여 있거나 계층 적이므로 (동일한 표본, 일반적으로 동일한 표본의 여러 [100] 다른 위치에 대해 유사하지만 반복되는 측정은 거의 없음) 효과적인 표본 크기를 모릅니다.

부트 스트랩과 비교 :

  • 반복은 새로운 랜덤 분할을 사용합니다.

  • 주요 차이점은 (부트 스트랩) 또는 (cv) 교체없이 리샘플링입니다.

  • 나는 이력서의 반복에는 선택 원하는만큼 계산 비용은 거의 동일입니다 없는 부트 스트랩 반복 /, 즉 계산없이 모델의 동일한 총 케이.

  • 부트 스트랩은 일부 통계적 속성 측면에서 cv에 비해 이점이 있습니다 (증상 적으로 정확합니다.

  • 그러나 cv를 사용하면 다음과 같은 장점이 있습니다.

    • 별개의 훈련 샘플의 수는 모든 모델에서 동일합니다 (학습 곡선을 계산하려는 경우 중요)
    • 각 샘플은 각 반복마다 정확히 한 번 테스트됩니다.
  • 일부 분류 방법은 반복 샘플을 폐기하므로 부트 스트랩은 의미가 없습니다.

성능 차이

짧은 대답 : 예 {0,1} 결과 만 존재하는 상황에서 차이를 말하는 것이 합리적입니다.

이항 분포 (k = 성공, n = 테스트, p = 성공 확률 = 평균 k / n)를 살펴보십시오.

σ2(케이)=(1)

비율의 차이 (예 : 적중률, 오류 속도, 감도, TPR 등은, ..., 내가 사용합니다 하고 지금부터 P 시험에서 관찰 된 값) 전체 책을 채우는 주제는 ...^

  • Fleiss : 요금 및 비율에 대한 통계적 방법
  • Forthofer and Lee : Biostatistics에는 좋은 소개가 있습니다.

이제, P = K 과 따라서 :p^=kn

σ2(p^)=p(1p)n

이는 분류기 성능을 측정하기위한 불확실성이 테스트 된 모델의 실제 성능 p 및 테스트 샘플 수에만 의존한다는 것을 의미합니다.

교차 검증에서 귀하는

  1. k "서로 게이트"모델은 일반적으로 모든 샘플에서 빌드 한 "실제"모델과 동일한 실제 성능을 갖습니다. (이 가정의 고장은 잘 알려진 비관적 편견이다).

  2. k "서로 게이트"모델은 동일한 실제 성능 (동일하고 안정적인 예측이 있음)을 가지므로 k 테스트 결과를 모을 수 있습니다.
    물론 cv의 한 반복의 k "surrogate"모델뿐만 아니라 k-fold cv의 i 반복의 ki 모델도 풀링 할 수 있습니다.

왜 반복합니까?

반복이 알려주는 가장 중요한 것은 모델 (예측) 불안정성, 즉 동일한 표본에 대한 다른 모델의 예측 분산입니다.

p^ 다른 반복을위한 CV.

그리고 네, 이것은 중요한 정보입니다.

nbootstrapkniter. cvn1nσ2(p^)=p(1p)n
이 경우 반복성을 필요로하지 않습니다 (안정성을 보여주기위한 것 이외).

pknp^n 보고는. 그러나 내 분야에서는 많은 사람들이 그것을 알고 있거나 심지어 어떤 표본 크기에 대한 불확실성이 얼마나 큰지를 직관적으로 파악하지 못합니다. 어쨌든보고하는 것이 좋습니다.

모형 불안정성을 관찰하면 합동 평균이 실제 성능을 더 잘 추정하는 것입니다. 반복 사이의 분산은 중요한 정보이며 모든 반복에서 실제 성능 평균 성능을 가진 크기 n의 테스트 세트에 대해 예상되는 최소 분산과 비교할 수 있습니다.


부트 스트랩과 같은 새로운 임의 분할을 반복하고 교체합니까? 아니면 k- 폴드 교차 검증을 여러 번 반복합니까? 부트 스트랩처럼 보이지는 않지만 그렇게 작동 할 수 있기 때문에 이것은 흥미 롭습니다. 그러나 얼마나 많은 복제를 수행합니까? 이것은 매우 비용이 많이들 수 있습니다.
Cesar

@Cesar : 부트 스트랩과 매우 유사합니다. 확장 된 답변을 참조하십시오.
cbeleites는

CV는 각 모델에 대해 "동일한 수의 고유 한 훈련 샘플"을 어떻게 남기지 만 부트 스트랩은 그렇지 않습니까? CV "복제 데이터 세트"는 서로 다른 관측치 조합이므로 동일한 수의 개별 관측치를 어떻게 제공 할 수 있습니까? 아마도 당신은 각 기록이 원래의 훈련 세트에서 다르다고 가정하고 있습니까?
확률

@probabilityislogic : CV 복제 데이터 세트가 원래 데이터 세트보다 습니다. 따라서 교체없이 리샘플링을 수행하더라도 서로 다른 복제를 생성 할 수 있습니다. 교체로 리샘플링하면 동일한 레코드를 여러 번 그릴 수 있습니다. 따라서 고유 레코드 수는 다를 수 있습니다. 예, 원본 레코드가 고유하다고 가정합니다. 많은 애플리케이션에 중요한 통계적 독립성을 유지하려면 최상위 레벨의 데이터 계층에서 리샘플링을 수행해야합니다. (예 : 각 환자 당 수백 개의 행으로 환자 데이터 작업 => 환자 재 샘플링)
cbeleites는

1
n

1

CV는 추정치 일 뿐이며 '실제'일반화 오류를 나타낼 수 없습니다. 표본 크기 (접힘 횟수 또는 접힘 크기에 영향을 미침)에 따라 일반화 오류 분포의 모수 추정치를 계산하는 기능이 크게 제한 될 수 있습니다. 제 생각에는 (서포트 벡터 머신을 사용한 지식 발견-Lutz Hamel과 같은 다양한 교과서에 나와 있음) CV의 부트 스트랩 변형을 수행하여 일반화 오류의 분포를 추정 할 수 있지만 표준 10- 1 (예를 들어) CV를 해제하면 실제 발생 오류에 대해 추론하기에 충분한 데이터 포인트가 제공되지 않습니다. 부트 스트랩을하려면 여러 번 (1000 정도의) 10-1 (또는 무엇이든) CV 테스트를 효과적으로 수행하는 훈련 / 테스트 / val을 대체하여 여러 샘플을 채취해야합니다. 그런 다음 CV 오류 모집단에 대한 평균의 샘플링 분포 추정치로 각 CV 테스트에 대한 평균의 샘플 분포를 취하여 분포 매개 변수, 즉 평균, 중앙값, 표준 최소 최대 Q1 Q3 등을 추정 할 수 있습니다. 약간의 작업이며, 내 의견으로는 귀하의 응용 프로그램이 추가 작업을 보장 할만 큼 중요하거나 위험 할 경우에만 필요합니다. 즉, 비즈니스가 단순히 랜덤보다 더 좋으면 좋을 것 같은 마케팅 환경에서 필요하지 않을 수도 있습니다. 그러나 고위험 약물에 대한 환자의 반응을 평가하거나 대규모 투자에 대한 소득 기대치를 예측하려는 경우이를 수행하는 것이 현명 할 수 있습니다.


추정치이지만 통계의 거의 모든 사용에 대해 말할 수 있습니다. 그러나 각 접기에 이미 분산 추정값이 있으면이 정보를 버리는 것이 올바르지 않습니다. 질문을 명확하게 업데이트했습니다.
Cesar

어쩌면 나는 그것을 얻지 못하고 있습니다. 왜 당신이 왜 단일 배의 분산에 대해 고민하고 있는지 이해하지 못합니까?
clancy

단일 10 중 CV를 실행하는 것이 내가 해결하려는 특정 문제에 대해 정확하게 싸지는 않습니다. 부트 스트랩에서와 같이 여러 샘플을 교체하여 분산을 추정 할 수 있습니다. 그러나 수백 개의 CV를 복용하는 것은 내 경우에는 매우 비현실적 일 수 있습니다. 개별 폴드 분산 추정값을 결합하여 필요한 부트 스트랩 샘플 수를 최소한 줄일 수있는 방법을 찾고 있습니다 (있는 경우). 그리고 호기심.
Cesar

아 알았어 아마도 그 전체 스크롤 의미에서이 차이에 대한 샘플링 분포로부터 선택되는 임의의 변수가 될 것이다에서 10 개 배 수단 ... 각각의 분산 (I 생각 카이 스퀘어 DIST 또는 F의 DIST이다)
클랜은

@ clancy : 10-1을 사용하면 n = 10 개의 샘플에 대해 휴가-1-아웃 cv를 의미합니까? Leave-One-Out 반복의 경우에는 의미가 없습니다.
cbeleites는 Monica
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.