데이터 집합을 교육 및 유효성 검사 집합으로 나누는 방법에 대한 규칙이 있습니까?


194

데이터를 교육 및 유효성 검사 세트로 가장 잘 나누는 방법에 대한 규칙이 있습니까? 50/50 분할도 권장됩니까? 또는 검증 데이터와 비교하여 더 많은 학습 데이터를 갖는 명백한 이점이 있습니까 (또는 그 반대)? 아니면이 선택이 응용 프로그램에 따라 크게 달라 집니까?

나는 주로 교육 및 검증 데이터의 80 % / 20 %를 사용했지만 원칙적인 이유없이이 부서를 선택했습니다. 기계 학습에 더 많은 경험이있는 사람이 저에게 조언 해 줄 수 있습니까?


사용 가능한 데이터가 너무 많지 않으면 en.wikipedia.org/wiki/Resampling_(statistics)#Jackknife
nair.ashvin

답변:


221

두 가지 경쟁 문제가 있습니다. 훈련 데이터가 적을수록 모수 추정값이 더 큰 차이를 보입니다. 테스트 데이터가 적을수록 성능 통계는 더 큰 차이를 갖습니다. 광범위하게 말하면 분산이 너무 크지 않도록 데이터를 나누는 것에 관심을 가져야합니다. 이는 분산이 아닌 각 범주의 절대 인스턴스 수와 더 관련이 있습니다.

총 100 개의 인스턴스가있는 경우 단일 스플릿이 예상치 못한 만족스러운 분산을 제공하지 않으므로 교차 유효성 검사가 중단 될 수 있습니다. 100,000 개의 인스턴스가있는 경우 실제로 80:20 분할 또는 90:10 분할을 선택하는지 여부는 중요하지 않습니다 (실제로 계산량이 많은 경우 더 적은 훈련 데이터를 사용하도록 선택할 수 있음).

교차 검증이 아닌 적절한 보류 검정 데이터를 수행하기에 충분한 데이터가 있다고 가정하면 다음은 분산을 처리하는 유용한 방법입니다.

  1. 데이터를 교육 및 테스트로 나눕니다 (80/20은 실제로 좋은 출발점입니다)
  2. 분할 교육 훈련 및 검증에 데이터를 (다시, 80/20 공정한 분할이다).
  3. 훈련 데이터의 무작위 선택 서브 샘플링, 분류기 훈련 및 검증 세트의 성능 기록
  4. 다른 양의 훈련 데이터로 일련의 런을 시도하십시오. 임의의 20 %를 무작위로 10 번 샘플링하고 검증 데이터의 성능을 관찰 한 다음 40 %, 60 %, 80 %로 동일하게 수행하십시오. 데이터가 많을수록 성능은 향상되지만 다른 임의 샘플에 대한 분산은 감소해야합니다.
  5. 테스트 데이터의 크기로 인해 분산을 처리하려면 동일한 절차를 반대로 수행하십시오. 모든 교육 데이터를 학습 한 다음 유효성 검사 데이터의 백분율을 여러 번 무작위로 샘플링 하고 성능을 관찰하십시오. 이제 유효성 검사 데이터의 작은 샘플에 대한 평균 성능이 모든 유효성 검사 데이터의 성능과 거의 동일하지만 테스트 샘플 수가 적을수록 편차가 훨씬 더 큽니다.

감사합니다.이 또한 매우 유용합니다! 나는 그것을 시도 할 것이다. 참고로, 약 6000 건의 훈련 데이터가 있습니다. SVM을 사용하고 있으므로 성능이 다소 문제가됩니다.
robguinness

1
FWIW, 성능 차이는 모든 인스턴스를 한 번 분류하고 정확한지 여부에 대한 결정을 내린 다음 테스트 인스턴스 대신 이러한 결정 을 샘플링 하여 다른 테스트 세트 크기를 사용하는 효과를 산출함으로써 계산할 수 있습니다.
Ben Allison

그리고 6000 개 인스턴스가되지 않습니다 10 % 시험 20 %를 사용 사이의 차이가 큰 (당신은 내가 설명하는 방법을 사용하여이를 확인할 수 있습니다) 충분히해야한다
벤 앨리슨

1
다시 안녕. 포인트 # 5에서 약간 혼란 스럽습니다. " 검증 데이터의 일정 비율을 여러 번 무작위로 샘플링합니다 "라고 말했습니다. 대신 테스트 데이터 를 보려고 했습니까 ? 올바르게 이해하면 먼저 데이터를 교육 및 테스트 데이터 세트로 분할 한 다음 일부 교육 데이터 세트를 유효성 검증 데이터 세트로 나누어야합니다. 따라서 5 단계에서 테스트 데이터의 분산을 측정하는 경우 테스트 데이터에서 모집단을 무작위로 샘플링하지 않아야합니까? 아니면 뭔가 빠졌습니까?
robguinness

2
요점은 매개 변수를 가지고 놀고 변화하는 효과를 관찰하면서 검증 데이터를 사용하여 테스트 해야한다는 것 입니다. 테스트 데이터를보고 가장 높은 점수를 얻는 방법에 따라 전략을 선택하면 분석법의 성능이 크게 향상됩니다. 모든 매개 변수를 설정하고 의사 결정이 이루어지는 경우, 다음 테스트 데이터에서 실행됩니다. 이를 통해 실제로 관찰되지 않은 새로운 데이터에 대해 어떤 종류의 성능을 얻을 수 있는지 알 수 있습니다 (아마 관심이있을 것입니다!)
Ben Allison

54

80/20이 흔히 파레토 (Pareto) 원칙 이라고하는 매우 일반적으로 발생하는 비율이라는 사실에 놀랄 것 입니다. 해당 비율을 사용하면 일반적으로 안전한 내기입니다.

그러나 사용하는 교육 / 검증 방법에 따라 비율이 변경 될 수 있습니다. 예를 들어 10 배 교차 검증을 사용하는 경우 각 접기마다 10 %의 검증 세트로 끝납니다.

훈련 세트와 검증 세트 사이의 적절한 비율이 무엇인지에 대한 연구가 있습니다 .

검증 세트를 위해 예약 된 패턴의 비율은 자유 조정 가능한 매개 변수 수의 제곱근에 반비례해야합니다.

결론적으로 그들은 공식을 지정합니다.

검증 세트 (v) 대 트레이닝 세트 (t) 크기 비율 v / t는 ln (N / h-max)와 같이 스케일링됩니다. 여기서 N은 인식기 패밀리 수이고 h-max는 해당 패밀리의 가장 복잡한 것입니다.

복잡성이 의미하는 바는 다음과 같습니다.

인식기의 각각의 패밀리는 VC- 치수 , 설명 길이, 조정 가능한 파라미터의 수, 또는 다른 복잡성 척도 와 관련 될 수도 있고 그렇지 않을 수도있는 복잡성을 특징 으로한다.

첫 번째 경험 법칙을 사용하면 (즉, 유효성 검사 세트는 사용 가능한 조정 가능한 매개 변수 수의 제곱근에 반비례해야 함) 32 개의 조정 가능한 매개 변수가있는 경우 32의 제곱근이 ~ 5.65이면 분수는 1 / 5.65 또는 0.177 (v / t). 대략 17.7 %는 검증 용으로, 82.3 %는 교육용으로 예약해야합니다.


2
나 자신처럼로드하는 데 어려움이있을 수있는 사람들을위한이 백서는 "유효성 검증 훈련 세트 비율 크기에 대한 스케일링 법칙"(I. Guyon, 1996, 미공개 기술 보고서, AT & T Bell Laboratories) ).
theforestecologist8

3
경험 법칙이 의미가 있습니까? 두 개의 조정 가능한 매개 변수가있는 경우 비율은 0.77이므로 유효성 검사에 77 %를 사용합니다. 문제는 자유 매개 변수 정의입니다. 선형 SVM의 경우 하나의 매개 변수 인 오류 항에 대해 페널티 매개 변수 C를 설정할 수 있지만 SVM의 경우 더 높은 차원 +1입니다.
리드 리차드

4
신경망이 있다면 테스트 크기가 1이되어야합니까?
YellowPillow

51

작년에 저는 Andrew Ng의 온라인 머신 러닝 과정을 수강했습니다. 그의 추천은 다음과 같습니다.

훈련 : 60 %

교차 검증 : 20 %

테스트 : 20 %


20
coursera.org/learn/deep-neural-network/lecture/cxG1s/… in the modern big data era, where, for example, you might have a million examples in total, then the trend is that your dev (cross validation) and test sets have been becoming a much smaller percentage of the total. 99.5 : 0.25 : 0.25 일 수 있다고 제안합니다.
Nobu

9

글쎄, 당신은 한 가지 더 생각해야합니다.

1,000,000 개의 예제와 같이 실제로 큰 데이터 세트가있는 경우 10 % = 100,000 개의 예제는 모델이 제대로 작동한다고 말할 필요가 없기 때문에 분할 80/10/10이 불필요 할 수 있습니다.

99 / 0.5 / 0.5이면 충분합니다. 5,000 개의 예제가 데이터의 대부분의 분산을 나타낼 수 있고 테스트 및 개발에서 5,000 개의 예제를 기반으로 모델이 잘 작동한다는 것을 쉽게 알 수 있습니다.


유효성 검사 세트의 0.5 %이면 충분할 수 있지만 충분하지 않다는 것을 알지 못하므로 크고 불필요한 위험을 감수하고 있다고 주장합니다. 너무 작은 유효성 검사 세트를 사용하면 훈련이 쉽게 잘못 될 수 있지만 큰 유효성 검사 세트를 사용하여 잘못 학습하는 것은 거의 불가능합니다.
Björn Lindqvist

2

데이터가 적다고 가정하면 70 %, 80 % 및 90 %를 시도하고 더 나은 결과를 제공하는 테스트하는 것이 좋습니다. 90 %의 경우 10 % 테스트의 경우 정확도가 떨어질 가능성이 있습니다.


1

아마도 63.2 % / 36.8 %가 합리적인 선택입니다. 그 이유는 전체 표본 크기 n 이 있고 초기 n 에서 교체 (통계 부트 스트랩에서와 같이 재 샘플링) n 사례 를 무작위로 표본 추출하려는 경우 개별 사례가 https://stats.stackexchange.com/a/88993/16263에 설명 된 것처럼 n 이 너무 작지 않은 경우 재 샘플은 약 0.632 가됩니다.

n = 250 의 표본의 경우, 개별 표본이 4 자리로 다시 표본 추출 될 확률은 0.6329입니다. n = 20000 인 표본의 경우 확률은 0.6321입니다.


1

그것은 모두 데이터에 달려 있습니다. 상당한 양의 데이터가있는 경우 위에서 언급 한대로 80/20을 선택하는 것이 좋습니다. 그러나 50/50 분할로 교차 검증을하지 않으면 훨씬 더 도움이되고 훈련 데이터에 과적 합하는 모델을 만들지 못할 수 있습니다.

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