홀드 아웃 세트를 만드는 가장 적절한 방법은 무엇입니까? 일부 주제를 제거하거나 각 주제에서 관찰을 제거하는 방법은 무엇입니까?


11

26 개의 기능과 31000 개의 행이있는 데이터 집합이 있습니다. 38 명의 피험자 데이터 세트입니다. 생체 인식 시스템입니다. 그래서 나는 주제를 식별하고 싶습니다.

테스트 세트를 사용하려면 일부 값을 제거해야한다는 것을 알고 있습니다.

그래서 무엇을 더 잘하고 왜?

  1. (a) 30 명을 훈련 세트로 유지하고 8 명을 시험 세트로 제거

  2. (b) 38 명의 피험자를 유지하지만 각각의 열을 제거하십시오. 결국 저는 38 개 과목의 24800 행과 38 개 과목의 6200 행의 훈련 세트로 끝납니다.


1
피험자를 식별하려면 테스트 세트에 대한 "전체"피험자를 어떻게 제거 할 수 있습니까? 30 명의 피험자에 대해 훈련 된 모델은이 30 명의 피험자 만 식별 할 수 있으며, 본 적이없는 8 명의 피험자는 아닙니다. "생체 측정 시스템"에 대한 설명은 대부분의 기존 답변을 적용 할 수 없게 만들 수 있습니다.
amoeba 말한다 Reinstate Monica

1
(1) 정확한 목표, 예측하려는 결과 변수는 무엇인가, (2) 어떤 데이터를 가지고 있고, (3) 어떤 접근법을 사용하고 있는지 명확히하는 것이 도움이 될 것 입니다.
Matthew Gunn

시스템 교육을 마치면 어떻게 배포 할 수 있습니까? 트레이닝 세트에없는 사람들에게 사용하는 것이 목표입니까? 새로운 데이터가 동일한 38 명의 주제에 속합니까? 나는 시스템이 어떻게 사용되어야하는지, 당신이 @AmiTavory의 답변의 경우 (1) 또는 경우 (2)인지 이해하려고합니다.
Matthew Gunn

@amoeba 나는 경험이 많지 않습니다 :( 데이터를 나누는 것이 좋습니다 (훈련, 유효성 검사 및 테스트) 때문에 질문했습니다. 따라서 일부 주제 또는 각 관찰 내용을 제거하거나 온라인에서 사용할 수있는 데이터 세트를 사용하는 것입니다. 1) 과목을 식별하고 싶습니다. 기능이 속한 사람 2) 나는 EEG (그래서 시계열)를 사용하고 있습니다. 3) Stratified-fold를 사용하고 있습니다. 그러나 kfold보다 정확도가 높기 때문입니다. 나는 k- 폴드, 계층화 및 일회성 만 알았습니다. 항상 생각했듯이 데이터의 불균형을 보상하는 것입니다. 그러나 나는 제안에 개방적이다.
Aizzaac

@ MatthewGunn 데이터 세트에없는 사람들과 함께 사용할 수는 없다고 생각합니다. 그것은 달성하기가 매우 어렵지만 매우 흥미로울 것입니다. 그래서 나는 사례 1을 말할 것입니다.
Aizzaac

답변:


9

Matthew Gunn의 대답은 맞다고 생각하지만 "기록적인"CV는 두 가지 다른 개념을 다룰 수 있습니다.

  1. 레코드는 주제 나 시간에 관계없이 무작위로 폴드로 분할됩니다.

  2. 레코드는 시간 기반 접기로 분할되며, 테스트 접기가 시작된 후의 데이터를 포함하는 훈련에는 접기가 사용되지 않습니다.

첫 번째 경우 훈련 세트에 테스트 세트 전후의 데이터가 포함될 수 있기 때문에 데이터의 시계열 특성이 손상됩니다. Train / Test의 원칙은 Training 데이터는 현재 알려진 데이터를 나타내고 Test 데이터는 아직 보이지 않는 데이터를 나타냅니다 (아마도 미래부터).

시계열 자기 상관은 옵션 # 2를 손상시킬 수 있습니다. 아마도 모델의 시간 요소는 실제로 중요하지 않으므로 "과거"와 "미래"관측치가 동일 할 것입니다. 이 경우 # 1 또는 # 2가 방법입니다.

계절성 만 있고 트렌드가 아닌 경우, 새로운 과목 (같은 계절성에 영향을받는)을 예측하기 위해 일부 과목에 대한 훈련에 "미래"를 포함시키는 것이 좋습니다. 트렌드가있는 경우 미래에 대한 교육을 통해 프로덕션에서 모델을 사용할 때 실제로 알지 못하는 미래에 대해 알아볼 수 있습니다.

OP의 예에서는 주제별로 좋은 것처럼 들립니다. 그러나 트렌드와 시계열 문제가 모델의 일부인 경우 주제 및 시간 기반 분할을 사용하여 특정 시점 이전에 한 주제 세트를 학습 한 다음 다른 주제를 테스트합니다. 그 특정 시점.


1
+1 시계열 구조가 있다면 미래를 사용하여 과거를 예측해서는 안된다는 점이 매우 중요합니다! 이 시간에 사용할 수없는 정보를 이용하여, 금융 일반적이고 위험한 오류가 (그것이 미래까지 알려져 있지 않기 때문에) 시간에 ... 등 반환, 기본값을 예측하는 . 복잡한 프로젝트와 수많은 데이터를 사용하면 실수를 저지르고 훈련 알고리즘을 효과적으로 미래에 정점에 두어 실제로는 불가능한 결과를 얻을 수 있습니다. t
Matthew Gunn

1
응용 프로그램이 approprate splitting이 무엇인지 결정한다고 말하고 싶습니다. 예를 들어, 시계열의 경우에도 미지의 대상체에 대한 추후 측정을 위해 종속 변수를 예측하는 것이 과제 일 수 있는데, 이는 분할이 시간별로뿐만 아니라 주제별로 수행되어야 함을 의미합니다.
SX

3
@cbeleites : 동의합니다. 이것은 최근 프로젝트에서 수행 한 작업입니다. 데이터를 훈련 및 테스트 주제로 나누고 테스트를 위해 훈련 및 날짜 이후 데이터에 대해서만 사전 데이터를 사용하므로 우리는 결코 테스트하지 않은 주제를 테스트했습니다. 본 기간 동안 우리는 아직 보지 못했습니다. 실제로 모델이 얼마나 잘 작동하는지 알고 싶다면 선상에서 데크를 쌓으려고합니다.
Wayne

16

중요한 차이는 당신이 원하는 여부 :

  1. [가장 일반적인 경우] : 데이터와 동일한 인구에서 추출한 새로운 주제에 대한 예상 성능을 구성합니다.
  2. 표본에서 와 동일한 주제 에서 새로운 관측치에 대한 성과 추정치를 구성합니다 .

가장 일반적인 경우는 사례 번호 (1)입니다. 예를 들어, 응급실로 들어오는 사람의 심장 마비를 얼마나 잘 예측합니까? 그리고 만약 당신이 (1)의 경우에, 당신 은 거의 확실하게 (a) 기록적인 교차 검증보다는 주제별 교차 검증을해야합니다. (1)의 경우에 기록적인 검증을 수행하면 새로운 주제에 대한 불합리한 가짜 예상 성능으로 이어질 수 있습니다.

나는 당신이하려는 일을 정확하게 이해하지 못합니다 (아마도 자체 연구이므로 질문이 완전히 현실적이지는 않습니다). 나는 당신이 어떤 경우에 있는지 모른다. 당신이 훨씬 덜 일반적인 경우에 있다면 (2), 기록적인 현명한 확인은 괜찮을 수도 있습니다.

통계의 일반적인 주제는 독립적 인 것과 상관 된 것에 대해 신중하게 생각하는 것입니다. 일반적으로 독립적 인 관찰은 다른 주제 인 경향이 있습니다 . 새로운 과목의 성과를 예측 하려면 훈련을받지 않은 과목을 테스트해야합니다!

왜 레코드 단위가 아닌 주제별 교차 검증입니까?

일반적인 설정에서 동일한 개인의 반복 관찰은 기능을 조정 한 후에도 서로 상관됩니다. 따라서 기록적인 교차 검증을 통해 테스트 세트 트레이닝 세트와 무관합니다! 완벽한 상관 관계의 극단적 인 경우 훈련 세트와 테스트 세트에서 동일한 결과를 얻을 수 있습니다! 테스트 세트에 대한 교육을 받으십시오! 교차 검증에서 측정 된 성능은 새로운 주제에 대한 성능을 예측 하지 않습니다 .

예를 들어, 이 최근 논문 은 레코드 방식의 교차 검증을``Voodoo Machine Learning ''이라고합니다.

그럼에도 불구하고 몇 가지 주제로 할 일 ...

케이=

훈련을위한 데이터를 최대화하려면 교차 검증을 위해 한 가지 주제를 생략해야합니다. 각 반복은 다른 보류 주제에 대해 테스트하고 다른 모든 주제에 대해 학습합니다.

=38


데이터 세트가 교육, 검증 및 테스트로 나누어 져야한다는 것을 알고 있습니다. 교차 검증에서 "훈련 및 검증"이 사용됩니다. 보류 세트는 "테스트"입니다. 당신은 제안하고 있습니다 : 훈련 및 검증을 위해 37 명의 과목을 사용하고 1 명의 과목에서 시험합니까? 그리고 k-fold, stratified 등 모든 유형의 교차 유효성 검사를 수행 할 수 있습니까?
Aizzaac

1
OP는 "바이오 메트릭 시스템을위한 것이므로 피험자를 식별 할 수 있기를 원합니다"라고 편집했습니다. 그것이 무엇을 의미하는지 올바르게 이해한다면, 목표는 샘플을 기반으로 대상 ID를 예측하는 것이 목표이기 때문에 레코드 방식의 CV만이 의미가 있음을 의미합니다.
amoeba는 Reinstate Monica

@amoeba 동일한 38 명의 주제 에서 새로운 데이터가 나오는 경우에만 해당됩니다 . 예 : 시스템이 지문이 일치하는지 아닌지 말하고 내 집의 정문에 배치 될 경우 (즉, 낯선 사람을 낯선 사람으로 식별해야 함) 동일한 주제에 대한 교육 및 테스트에 문제가있을 수 있습니다. 이전에는 본 적이없고 훈련을받지 않은 사람들에게 얼마나 자주 입장 할 수 있는지 알고 싶습니다.) "바이오 메트릭 시스템을위한 것"이라는 질문에 동의하지만…
Matthew Gunn

3

열차 / 테스트 스플릿으로 에뮬레이션하려는 설정을 어떻게 구상하는지에 달려 있습니다. 구체적으로 설명하기 위해 각 행은 하룻밤 동안 대상의 수면 품질을 설명한다고 말합니다.

  1. 미래에 각 과목이 먼저 수면 실험실에 와서 몇 밤 동안 수면 품질을 제공 할 수 있습니다. 그런 다음, 이 주제에 대한 미래의 밤 수면 품질을 예측해야합니다 . 이 경우 옵션 b)를 사용합니다. 에서 sklearn사용할 수 있습니다sklearn.model_selection.StratifiedShuffleSplit

  2. 앞으로 몇 명의 주제가 먼저 수면 실험실에 와서 몇 밤 동안 수면 품질을 제공 할 가능성이 있습니다. 그 후, 당신은 다른 과목들에 대한 미래의 밤의 수면 질을 예측할 것 입니다. 이 경우 옵션 a)를 사용합니다. 에서 sklearn사용할 수 있습니다sklearn.cross_validation.LeavePLabelOut


1
현실적으로, 질문은 거의 확실하게 귀하의 경우 (2)와 옵션 (a), 즉 주제별 교차 검증이 적절합니다.
Matthew Gunn

1
@MatthewGunn 당신이 맞아요. 사례 2가 훨씬 더 일반적입니다. 내가 말을해야 일이 올바른 선택이었다 실제 사례로 실행합니다.
Ami Tavory

1
흥미 롭군 나는 (1) 대규모의 기존 고객 기반에 대한 새로운 관찰을 예측하는 것이 옳다는 것을 알 수있었습니다. 요점을 알았어. 아마도 최근 에 의료 분야에서 기록적인 교차 검증의 광범위한 오용에 대해이 논문 을 읽었 기 때문에 너무 강하게 반응하고 있습니다.
Matthew Gunn

이것에 대해 어떻게 생각하십니까 : 저는 38 가지 주제를 모든 유형의 교차 검증과 함께 사용합니다. 내 모델을 다른 주제와 함께 사용할 수 있는지 테스트하기 위해; 온라인 데이터 세트를 사용합니까? 보류 집합의 아이디어는 모델을 테스트하기 위해 "새로운"데이터 집합을 갖는 것입니다.
Aizzaac

3

나는 응용 프로그램이 알 수없는 주제를 예측하는 것으로 가정합니다. 즉, 시계열 또는 본질적으로 정렬되지 않은 반복 측정이 있는지 여부에 관계없이 알 수없는 대상을 테스트하기 위해 분할을 수행해야 함을 의미합니다.

하지만 38 개의 피험자 만 있다는 것을 고려하면 리샘플링 유효성 검사에 대해 몇 가지 생각을해야합니다. 비슷한 작은 샘플 크기 (더 많은 기능이지만)로 작업 한 경험을 요약하면 다음과 같은 권장 사항이 있습니다.

  • 주제별 부트 스트랩 또는 반복 교차 검증을 수행하십시오. 작은 표본 크기 문제에 중요한 모델의 안정성을 평가할 수 있습니다. 불안정성이 문제가되는 경우 결과를 집계 모델에 사용할 수도 있습니다.

  • 되지 휴가 - 하나의 주제 아웃을한다. 모델 안정성을 측정하거나 줄일 수 없습니다. 또한, 샘플 크기가 작기 때문에 비관적 편향이 큰 상황이 예상됩니다 (예상되는 최소 비관적 편향이 아닌).

  • 정확도, 감도, 특이성 등의 전형적인 분류 지수를 사용하고 있고 과제를 올바르게 분류하는 것이 과제 인 경우 : 테스트 결과의 불확실성이 절대 수에 따라 결정되므로 중요한 문제는 성능을 측정하는 것입니다 테스트 사례. 예를 들어, 진정으로 긍정적 인 17 개의 대상 중 17 개의 정확한 예측을 관찰하면 약 80 %에서 100 % 사이의 감도에 대한 95 % 신뢰 구간에 해당합니다.
    즉,이를 기반으로 데이터 중심 모델 최적화를 수행 할 수 없습니다.

  • 이것은 여기서 통계적으로 무의미한 비교에서 자원을 낭비하기 때문에 3 세트 분할 (중간 교차 검증)을 설정할 필요가 없음을 의미합니다. 최적화가 거의 보장되지 않습니다. 안정성을 확인하지 마십시오).

  • 제안 된 5 (3) 테스트 / 최적화 / 검증 대상에 대한 이항 신뢰 구간에 대한 동일한 계산은 50 % (30 %)까지 모든 정확한 범위에 대해 95 % ci를 생성하므로 완벽한 테스트 결과를 바탕으로 신뢰 구간에는 여전히 50 / 50 추측!

이 주제에 관해 우리가 쓴 몇 가지 논문 :

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