훈련보다 높은 테스트 정확도. 해석하는 방법?


23

많은 기능 (1000 이상)이있는 최대 150 개의 예제 (훈련 및 테스트에 분할)가 포함 된 데이터 세트가 있습니다. 데이터에서 잘 수행되는 분류기와 기능 선택 방법을 비교해야합니다. 그래서 다른 검색 방법 (Greedy, BestFirst)과 함께 세 가지 분류 방법 (J48, NB, SVM)과 두 가지 기능 선택 방법 (CFS, WrapperSubset)을 사용하고 있습니다.

비교하면서 저는 훈련 정확도 (5 배 교차 접기)와 테스트 정확도를보고 있습니다.

다음은 J48 및 CFS-BestFirst의 결과 중 하나입니다.

{ "accuracyTraining": 95.83, "accuracyTest": 98.21}

많은 결과가 이와 같으며 SVM에는 테스트 정확도가 훈련보다 훨씬 높다는 것을 나타내는 많은 결과가 있습니다 (트레이닝 : 60 %, 테스트 : 98 %)

이런 종류의 결과를 어떻게 의미있게 해석 할 수 있습니까? 그것이 더 낮다면, 그것이 너무 적합하다고 말할 것입니다. 이 경우 모든 결과를 살펴보면 편향과 분산에 대해 언급해야 할 것이 있습니까? 교육 및 테스트 세트를 다시 선택하거나 모든 데이터에 대해 교차 유효성 검사를 사용하는 등이 분류를 의미있게 만들려면 어떻게해야합니까?

73 개의 교육 및 58 개의 테스트 인스턴스가 있습니다. 일부 답변에는 게시시이 정보가 없었습니다.

답변:


20

첫 번째 단계는보고 된 교육 및 테스트 성능이 실제로 올바른지 확인하는 것입니다.

  • 5 배 교차 검증 중 분할이 통계적으로 독립적 인 cv train / test 세트를 생성하는 방식으로 수행됩니까? 예를 들어, 데이터에 측정이 반복되는 경우 항상 같은 세트로 끝나나요?
  • 150 개 샘플의 5 배 cv에서 95.83 %의 정확도는 5 개의 대리 모델의 경우 130 개 교육 샘플 중 5 개 잘못되었거나 5 * 130 개의 교육 샘플에 대해 25 개의 잘못된 사례와 일치합니다.
  • 98.21 %의 테스트 정확도는 설명하기가 더 어렵습니다. cv를 한 번 실행하는 동안 각 사례를 한 번 테스트해야합니다. 따라서보고 된 숫자는 100 % / 150 단계 여야합니다. 98.21 %는 2.68 개의 잘못된 경우에 해당합니다 (150 개의 테스트 사례 중 2 개 및 3 개는 각각 98.67 및 98.00 %의 정확도를 나타냄).

  • 모델을 추출 할 수 있으면보고 된 정확도를 외부에서 계산하십시오.

  • 무작위 입력에 대해보고 된 정확성은 무엇입니까?
  • 외부 교차 검증을 수행하십시오. 데이터를 분할하고 교육 부분 만 프로그램에 넘겨주십시오. "외부"테스트 데이터를 예측하고 정확도를 계산하십시오. 이것은 프로그램의 출력과 일치합니까?
  • 보고 된 "테스트 정확도"가 독립적 인 데이터 (이중 / 중간 교차 검증)에서 오는지 확인하십시오. 프로그램이 데이터 중심 최적화를 수행하는 경우 (예 : 많은 모델을 비교하여 "최상의"기능 선택) 훈련 오류와 유사합니다 (양호) 일반화 오류보다 적합합니다.

교육 오류가 기계 학습에 거의 유용하지 않다는 @mbq에 동의합니다. 그러나 실제로 유용한 몇 가지 상황 중 하나 일 수 있습니다. 프로그램이 정확도를 비교하여 "최상의"모델을 선택하지만 선택할 수있는 훈련 오류 만있는 경우 훈련 오류가 실제로 합리적인지 여부를 확인해야합니다. 선택.
@mbq는 구별 할 수없는 모델에 대한 최상의 시나리오를 설명했습니다. 그러나 테스트 정확도와 마찬가지로 훈련 정확도도 차이가 있지만 일반적으로 관심이있는 일반화 정확도에 비해 낙관적 편향이 있습니다. 이로 인해 모델의 성능이 실제로 다르더라도 모델을 구별 할 수없는 상황이 발생할 수 있습니다. 그러나 그들의 훈련 (또는 내부 이력서) 정확성은 낙관적 편견 때문에 그들을 구별하기에는 너무 가깝습니다. 예를 들어, 반복적 특징 선택 방법은 내부 교차 검증 정확도에 대해 지속될 수있는 (그 교차 검증이 구현되는 방법에 따라) 그러한 문제에 노출 될 수 있습니다.

따라서 이러한 문제가 발생할 수 있다면 프로그램이 의사 결정에 사용하는 정확성으로 인해 합리적인 선택이 가능한지 여부를 확인하는 것이 좋습니다. 이는 내부 cv 정확도 (최고의 모델 선택에 사용되는 것으로 추정 됨)가 통계적으로 독립적 인 분할을 통해 외부 적으로 수행 된 cv에 대해 너무 낙관적으로 바이어스되지 않았는지 확인하는 것을 의미합니다. 다시 말하지만, 합성 및 / 또는 무작위 데이터는 프로그램이 실제로 수행하는 작업을 찾는 데 도움이 될 수 있습니다.

두 번째 단계는 @mbq가 이미 지적했듯이 통계적으로 독립적 인 분할에 대한 관측 된 차이가 의미가 있는지 살펴 보는 것입니다.

통계적으로 의미있는 차이를 얻기 위해 주어진 표본 크기로 관찰해야하는 정확도의 차이를 계산하는 것이 좋습니다. 관측 된 변동이 적은 경우 주어진 데이터 세트에서 어떤 알고리즘이 더 나은지 결정할 수 없습니다. 추가 최적화는 의미가 없습니다.


여기에는 훌륭한 정보가 있습니다. 첫째로, 나는 당신이 숫자에 너무 자세하게 들어갈 것이라고 기대하지 않았고 또한 하나의 주제에 집중하고 싶었 기 때문에 정확한 숫자를주지 않아서 유감입니다. 어쨌든, 73 교육 및 58 테스트 데이터가 있습니다. 이것들은 통계적으로 분리되지 않았으며, 단지 다른 시간에 나에 의해 취해졌습니다. 교육 샘플은 먼저 기능 선택 알고리즘 (래퍼 fs 방법에는 내부 5 중 cv가 있음)으로 가져온 다음 5 중으로 최적의 정확도가 취해지고 모델이 저장됩니다. 그 모델은 테스트 정확도를 계산하는 데 사용됩니다.
ercu

16

훈련 세트의 정확도는 머신 러닝에서 의미가 없습니다. 무시해.


감사! 나는 최고의 테스트 정확도를 가진 많은 결과를 가지고 있으므로 결과를 지금 비교할 수 없습니다 (그렇지 않으면 훈련 정확도를 비교해보십시오 :). 따라서 테스트 및 교육으로 분할하는 대신 결과를 비교하기 위해 모든 데이터 세트에서 다중 교차 검증이 더 적절합니까? 아니면 다른 측정 항목이 필요합니까?
ercu

1
CV는 확실히 좋은 생각입니다. 어쨌든 여러 "최상의"알고리즘 또는 매개 변수 세트가있을 수 있습니다 (최상의 경우와 동일하거나 통계적으로 구별 할 수없는 정확도를 제공한다는 의미에서). 또한 문제가되지 않습니다. 더 좋은 것은 안정적인 결과를 얻는다는 것을 의미합니다. 예리한 최적은 체리 피킹 매개 변수로 모델에 과적 합했을 수 있습니다.

8
예측 알고리즘이 수행 한 과적 합의 양을 추정하려면 (훈련과 테스트 세트의 정확도 차이를 계산하여) 훈련 세트의 정확도를 아는 것이 유용합니다.
Frank Harrell 2016 년

이유를 설명해 주시겠습니까?
inf

1
정의에서 ML 방법은 보이지 않는 데이터의 성능에 관한 것이므로이 결과에 대해 보증하지 않습니다 (모델은 통계 모델링과 같이 데이터의 기본 메커니즘을 다시 구현할 것으로 예상되지 않음). 실제로 많은 방법이 지나치게 정확한 예측을 제공하므로 단지 속이는 것입니다.

6

당신이 이것에 대해가는 방식에 몇 가지 심각한 문제가 있습니다. 우선, 총 샘플 크기가 크지 않으면 데이터 분할을 신뢰할 수 없습니다. 다시 나누면 다른 결과가 나옵니다. 무엇보다도 정확도 추정치에 대한 신뢰 구간을 고려하지 않습니다. 둘째, 5 배 교차 검증이 충분히 정확하지 않습니다. 적절한 정밀도를 달성하려면 100 회 반복해야 할 수도 있습니다. 셋째, 불연속적인 부적절한 점수 규칙 (정확한 비율)을 정확도 점수로 선택했습니다. 이러한 부적절한 점수 규칙은 잘못된 모델을 선택하게합니다.


3

알고리즘 구현에 결함이 없다고 가정하면 문제를 살펴 보겠습니다.

훈련 데이터에서 작은 부분 집합을 가져 와서 학습 알고리즘을 실행한다고 상상해보십시오. 분명히 잘 할 것입니다. 98 %에 가까운 정확도를 달성하는 부분 집합을 항상 추출 할 수 있습니다.

이제 테스트 데이터가이 서브셋과 매우 유사합니까? 그렇다면 더 많은 데이터를 수집해야합니다. 바이어스-차이의 관점에서, 나는 당신의 분산이 높다고 말할 것입니다.


1

보유한 샘플 수 (150)에 대해 너무 많은 기능 (1000)이 있습니다. 샘플을 늘리거나 기능 수를 줄여야합니다.

그들은 일반적으로 기능의 수 ^ 2 = 필요한 샘플 수를 말합니다. 따라서 최소한 백만 개의 샘플이 필요합니다.


0

ML 알고리즘과 사용자 정의 분류기를 사용하여 발생할 수 있습니다. 다른 k- 폴드 교차 검증 체계, 즉 2 또는 10 배를 시도하십시오. k가 높을수록 테스트 오류가 줄어들 것으로 예상됩니다.

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