교차 검증은 데이터 스누핑과 어떻게 다릅니 까?


13

방금 "통계 학습 소개"를 마쳤습니다 . 교차 검증을 사용하여 다양한 머신 러닝 기술에 대한 최상의 튜닝 매개 변수를 찾는 것이 데이터 스누핑과 다른지 궁금합니다.

튜닝 세트의 어떤 값이 테스트 세트에서 최상의 예측 결과를 가져 오는지를 반복해서 점검하고 있습니다. 우리가 도달 한 튜닝 매개 변수가 우연히이 특정 테스트 세트에 맞고 향후 테스트 세트에서 제대로 수행되지 않으면 어떻게됩니까?

기계 학습에 대한 초보자의 이해를 용서해주십시오. 교육을 받고 싶습니다.

편집 : "데이터 스누핑"의 정의에 대한 @AdamO 답변을 참조하십시오. 내 질문에이 용어를 매우 부정확하게 사용했습니다.


나는 이것을 발견하게되어 매우 기쁘다. 뭔가를 출판 한 일부 연구원들과 함께 내일 TC를 가지고있다. 불행히도이 문제로 고통 받고있다. 좋은 질문입니다!
pallevillesen

답변:


12

교차 검증을 사용하여 다양한 머신 러닝 기술에 대한 최상의 튜닝 매개 변수를 찾는 것이 데이터 스누핑과 다른지 궁금합니다.

귀하의 우려는 올바른 위치에 있으며이 주제에 관한 많은 문헌이 있습니다.

문제는 교차 검증을 통한 하이퍼 파라미터 튜닝이 데이터 중심 최적화 프로세스이며 여전히 데이터 교체에 적합하지는 않습니다 (재 치환 오류에 의한 튜닝보다는 여전히). 튜닝 독립 검증 결과를 "독립적 인"성능 측정으로 사용하려는 것은 파이를 먹고 (= 튜닝) 유지 (= 최종 모델 성능을 측정)하는 방법입니다.

그렇다고 하이퍼 파라미터 튜닝에 교차 검증을 사용해서는 안됩니다. 단지 한 가지 목적으로 만 사용할 수 있음을 의미합니다. 검증 목적으로 모델 성능을 최적화하거나 측정하십시오.

해결책은 튜닝 된 하이퍼 파라미터로 얻은 모델의 품질을 측정하기 위해 독립적 인 검증을 수행해야한다는 것입니다. 이것을 중첩 또는 이중 유효성 검사라고합니다. 이 주제에 대한 여러 가지 질문과 답변이 있습니다.

개념적으로, 훈련에는 "일반적인"모델 파라미터뿐만 아니라 하이퍼 파라미터에 맞는 (자동 튜닝) 모든 종류의 멋진 단계가 포함되어 있습니다. 따라서 λ의 데이터 중심 최적화는 분명히 모델 교육의 일부입니다.

경험상 모델 학습은 새로운 사례에 대한 예측을 생성 할 수있는 즉시 사용할 수있는 최종 블랙 박스 기능을 사용하기 전에 수행해야하는 모든 것이라고 말할 수 있습니다.


추신 : 내 필드에서 "유효성 검사"는 최종 모델이 목적에 적합 하다는 것을 입증하고 다른 사람들이 유효성 검사 대신 테스트를 호출 하기 때문에 테스트 대 유효성 검사 용어가 매우 혼란 스럽다는 것을 알았습니다. 내부 테스트 세트 "튜닝 테스트 세트"및 외부 "최종 유효성 검사 테스트 세트"등을 선호합니다.


최신 정보:

따라서 내 모델 (이 경우 내 튜닝 매개 변수)이 외부 검증에 실패하면 어떻게해야합니까?

일반적으로 이것은 아무 일도 일어나지 않습니다. 이러한 장애를 일으킬 수있는 일반적인 상황이 있습니다. 그리고 내가 알고있는 모든 상황은 과잉 상황입니다. 정규화는 필요한 교육 사례 수를 줄이는 데 도움이되지만 데이터 기반 최적화에는 많은 양의 데이터가 필요하다는 점에 유의해야합니다.

내 추천 :

  • 일반적으로 어떤 성과를 달성해야하는지, 의심 할만한 외모로 생각할만한 성과와 같은 기대치가 이미 높아야합니다. 또는 달성해야 할 성능과 기준 성능을 지정하십시오. 그것과 사용 가능한 훈련 사례의 수 (당신이 결정한 분리 계획의 경우)에서 내부 (동조) 테스트에 대한 예상 불확실성을 계산하십시오. 그 불확실성이 의미있는 비교를 할 수 없다는 것을 나타내면 데이터 기반 최적화를 수행하지 마십시오.

  • 선택한 λ 에서 얻은 예측 과 자동 튜닝 절차에서 찾은 최적 λ가 얼마나 안정적인지 확인해야합니다 . 데이터의 다른 분할에 대해 λ가 합리적으로 안정적이지 않으면 최적화가 작동하지 않습니다.

  • 데이터 중심 최적화를 수행 할 수 없거나 결국 작동하지 않는 것을 발견 한 경우, 유사한 데이터에 대한 경험에서 전문가 지식으로 λ를 선택할 수 있습니다. 또는 최적화에 실패했다는 사실을 알게되면 더 강력한 정규화가 필요합니다. 실패로 이어지는 과적 합은 너무 복잡한 모델에 적용됩니다.


1
동의합니다 기차, 테스트 / 검증 용어는 매우 직관적이지 않습니다
M. Berk

3

k

λλ

"데이터 스누핑"또는 내가 말할 수 있듯이 "탐색 데이터 분석"은 사전 지정된 질문을 처리하지 않습니다. 여러 가지 가능한, 아마도 그럴듯한 흥미로운 결과를 열거하고 개별적으로 평가합니다. 여러 탐색 분석을 수행 할 수 있으며 일반적으로 여러 테스트에 대해 걱정할 필요가 없습니다. 교차 검증을 사용하여 각 탐색 분석을 개별적으로 평가할 수 있지만 탐색 분석이 둘 이상인 경우에는 여러 테스트를 기본적으로 설명하지 않습니다. 이 환경에서의 가설은 "전립선 암과 관련된 요인은 무엇입니까?" (커피 마시는, 정관 절제술 사용량 등을 코호트에서 측정 한 것). 중요한 결과는 "가설 생성"으로 보이며 확증적인 증거를 제공하지 않습니다.

k


λλ

1
@Anh : 교차 검증에 의한 λ의 튜닝 자체가 나쁘지는 않습니다. 그러나 그렇게하면 λ 튜닝을위한 교차 검증이 "사용"되었고 λ 튜닝 프로세스를 포함하여 모델링과 무관 한 다른 검증이 필요합니다. 이 외부 검증을 수행하지 않으면 BAD입니다. 특정 λ가 "다시"작동하지 않으면 (예 : 다른 데이터 분할에서) 최적화가 작동하지 않습니다. 이러한 상황에서는 일반적으로 외부 검증 결과와 튜닝 중에 관찰 된 "최상의"성능간에 큰 차이가 있습니다.
SX에 불만족 cbeleites

@cbeleites 따라서 내 모델 (이 경우 내 튜닝 파라미터)이 외부 검증에 실패하면 어떻게해야합니까? 다시 돌아가서 다른 튜닝 매개 변수를 찾을 수 없습니다. 본질적으로 외부 검증을 튜닝 테스트 세트로 전환하기 때문입니다. 그래서 뭐 할까?
Heisenberg

λ

λk

1

실제로 CV 중에는 테스트 세트와는 다른 검증 세트 에서 최상의 매개 변수를 찾으려고합니다 . 전체 데이터를 훈련 세트, 검증 세트 및 테스트 세트의 세 세트로 나눕니다. 교차 유효성 검사를 올바르게 수행하면 끝까지 테스트 끝을 보지 않으므로 스누핑이 전혀 없습니다. 테스트 세트에서 교차 유효성 검사를 수행하는 것은 심각한 (그러나 빈번한) 방법 론적 오류입니다.


유효성 검사 세트와 테스트 세트가 다른 경우 나에게 의미가 있습니다. 그러나 내가 읽은 책에서 (Hastie et al. 이하), 그들은 홀드 아웃 테스트를 사용하는 것이 비싸다고 주장합니다 (우리는 훈련하기 위해 많은 양의 데이터를 사용하지 않습니다). 별도의 테스트 세트가 없다고 생각합니다.
Heisenberg

1
@Anh : 두 개의 분할은 하나의 작은 데이터 세트 만 따로 설정하는 대신 리샘플링 (예 : 반복 교차 검증)하여 수행 할 수 있습니다.
SX에 불만족 cbeleites

@Anh : k- 폴드 크로스 밸리데이션에서는 원래 트레이닝 세트의 k 배를 더 작은 트레이닝 세트와 검증 세트로 나눕니다. 원래 테스트 세트는 포함되지 않으며 마지막에만 사용됩니다.
Jerorx

0

Lasso 예제와 함께 "통계 학습 소개"의 225 페이지에서 예제를 보면 실제로 중첩 교차 검증을 수행하는 것을 볼 수 있습니다. 모델 선택이 이루어집니다 즉, cv.glmnetA의 train바이 분할 설정, cv.glmnet열차 시험 쌍에 패키지로 제공된다. 모델 유효성 검사는 유효성 검사 ( " test") 세트에서 수행되므로 독립적 인 유효성 검사입니다.

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