다음을 통해 공유


모델 교차 유효성 검사

이 문서에서는 Azure Machine Learning 디자이너에서 모델 교차 유효성 검사 구성 요소를 사용하는 방법을 설명합니다. 교차 유효성 검사는 데이터 세트의 가변성과 해당 데이터를 통해 학습된 모델의 안정성을 모두 평가하기 위해 기계 학습에 자주 사용되는 기술입니다.

모델 교차 유효성 검사 구성 요소는 학습되지 않은 분류 또는 회귀 모델과 함께 레이블이 지정된 데이터 세트를 입력으로 사용합니다. 데이터 세트를 몇 개의 하위 집합(접기)으로 나누고 각 접기에 모델을 빌드한 다음 각 접기에 대한 정확도 통계 집합을 반환합니다. 모든 폴드에 대한 정확도 통계를 비교하여 데이터 집합의 품질을 해석할 수 있습니다. 그런 다음 모델이 데이터의 변형에 취약한지 여부를 이해할 수 있습니다.

또한 교차 유효성 검사 모델은 예측의 안정성을 평가할 수 있도록 데이터 세트에 대해 예측된 결과와 확률을 반환합니다.

교차 유효성 검사의 작동 방식

  1. 교차 유효성 검사는 학습 데이터를 접기로 임의로 나눕니다.

    이전에 데이터 세트를 분할하지 않은 경우 알고리즘은 기본적으로 10배로 설정됩니다. 데이터 세트를 여러 폴드로 나누려면 파티션 및 샘플 구성 요소를 사용하며, 사용할 폴드 수를 표시할 수 있습니다.

  2. 구성 요소는 유효성 검사에 사용할 데이터를 폴드 1로 따로 설정합니다. (간혹 홀드아웃 폴드라고도 합니다.) 구성 요소는 나머지 폴드를 사용하여 모델을 학습 합니다.

    예를 들어 5개의 폴드를 만들면 구성 요소는 교차 유효성 검사 중에 5개의 모델을 생성합니다. 구성 요소는 데이터의 4/5를 사용하여 각 모델을 학습시킵니다. 5분의 1을 다시 기본 각 모델을 테스트합니다.

  3. 각 폴드에 대해 모델을 테스트하는 동안 구성 요소는 여러 정확도 통계를 평가합니다. 구성 요소에서 사용하는 통계는 평가 중인 모델 유형에 따라 달라집니다. 분류 모델 및 회귀 모델 평가에는 다른 통계가 사용됩니다.

  4. 모든 접기에서 빌드 및 평가 프로세스가 완료되면 교차 유효성 검사 모델은 모든 데이터에 대한 성능 메트릭 및 점수 매기기 결과 집합을 생성합니다. 이러한 메트릭을 검토하여 단일 접기의 정확도가 높거나 낮은지 확인합니다.

교차 유효성 검사의 이점

모델을 평가하는 다른 일반적인 방법은 데이터 분할을 사용하여 데이터를 학습 및 테스트 집합으로 나눈 다음 학습 데이터에서 모델의 유효성을 검사하는 방식이 있습니다. 그러나 교차 유효성 검사는 다음과 같은 몇 가지 이점을 제공합니다.

  • 교차 유효성 검사는 더 많은 테스트 데이터를 사용합니다.

    교차 유효성 검사는 더 큰 데이터 공간에서 지정된 매개 변수를 사용하여 모델의 성능을 측정합니다. 즉, 교차 유효성 검사는 학습 및 평가 모두에 부분이 아닌 전체 학습 데이터 집합을 사용합니다. 반면 임의 분할에서 생성된 데이터를 사용하여 모델의 유효성을 검사하는 경우 일반적으로 사용 가능한 데이터의 30% 이하에서만 모델을 평가합니다.

    그러나 교차 유효성 검사는 더 큰 데이터 세트를 통해 모델을 여러 번 학습시키고 유효성을 검사하기 때문에 훨씬 더 계산 집약적입니다. 임의 분할의 유효성을 검사하는 것보다 훨씬 오래 걸립니다.

  • 교차 유효성 검사는 데이터 세트와 모델을 모두 평가합니다.

    교차 유효성 검사는 단순히 모델의 정확도만 측정하지 않습니다. 또한 데이터 세트가 얼마나 대표적인지, 그리고 모델이 데이터의 변형에 얼마나 민감할 수 있는지에 대한 몇 가지 아이디어를 제공합니다.

교차 유효성 검사 모델을 사용하는 방법

데이터 집합이 큰 경우 교차 유효성 검사를 실행하는 데 시간이 오래 걸릴 수 있습니다. 따라서 모델을 빌드하고 테스트하는 초기 단계에서 교차 유효성 검사 모델을 사용할 수 있습니다. 이 단계에서는 모델 매개 변수의 양호도를 평가할 수 있습니다(계산 시간을 견딜 수 있다고 가정). 그런 다음 모델 학습모델 평가 구성 요소에서 설정된 매개 변수를 사용하여 모델을 학습시키고 또 평가할 수 있습니다.

이 시나리오에서는 교차 유효성 검사 모델을 사용하여 모델을 학습시키고 테스트합니다.

  1. 파이프라인에 모델 교차 유효성 검사 구성 요소를 추가합니다. Azure Machine Learning 디자이너의 모델 점수 매기기 및 평가 범주에서 찾을 수 있습니다.

  2. 분류 또는 회귀 모델의 출력을 커넥트.

    예를 들어 분류에 두 클래스 향상된 의사 결정 트리를 사용하는 경우 원하는 매개 변수를 사용하여 모델을 구성합니다. 그런 다음 분류자의 학습되지 않은 모델 포트에서 교차 유효성 검사 모델과 일치하는 포트로 커넥터를 드래그합니다.

    모델 교차 유효성 검사는 평가의 일부로 모델을 자동으로 학습하기 때문에 모델을 학습시킬 필요가 없습니다.

  3. 교차 유효성 검사 모델의 데이터 세트 포트에서 레이블이 지정된 학습 데이터 세트를 연결합니다.

  4. 교차 유효성 검사 모델의 오른쪽 패널에서 열 편집을 클릭합니다. 클래스 레이블이 포함된 단일 열 또는 예측 가능한 값을 선택합니다.

  5. 동일한 데이터에서 연속 실행에서 교차 유효성 검사 결과를 반복하려면 Random seed 매개 변수의 값을 설정합니다.

  6. 파이프라인을 제출합니다.

  7. 보고서에 대한 설명은 결과 섹션을 참조하세요.

결과

모든 반복이 완료되면 교차 유효성 검사 모델은 전체 데이터 세트에 대한 점수를 만듭니다. 또한 모델의 품질을 평가하는 데 사용할 수 있는 성능 메트릭을 만듭니다.

점수가 매기된 결과

구성 요소의 첫 출력은 각 행에 대한 원본 데이터와 함께 예측된 값 및 관련 확률을 제공합니다.

결과를 보려면 파이프라인에서 모델 교차 유효성 검사 구성 요소를 마우스 오른쪽 단추로 클릭합니다. 채점 결과 시각화를 선택합니다.

새 열 이름 설명
채점된 레이블 이 열은 데이터 세트의 끝에 추가됩니다. 각 행에 대해 예측된 값이 포함됩니다.
점수가 매기된 확률 이 열은 데이터 세트의 끝에 추가됩니다. 채점된 레이블의 값에 대한 예상 확률을 나타냅니다.
폴드 번호 교차 유효성 검사 중에 각 데이터 행이 할당된 폴드의 인덱스(0 기반)를 나타냅니다.

평가 결과

두 번째 보고서는 접기별로 그룹화됩니다. 실행 중에 교차 유효성 검사 모델은 학습 데이터를 n 접기로 임의로 분할합니다(기본적으로 10). 데이터 집합에 대한 각 반복에서 교차 유효성 검사 모델에서는 유효성 검사 데이터 집합으로 하나의 폴드를 사용합니다. n-1 접기를 다시 기본 사용하여 모델을 학습시킵니다. 각 n 모델은 다른 모든 접기의 데이터에 대해 테스트됩니다.

이 보고서에서 폴드는 인덱스 값으로 오름차순으로 나열됩니다. 다른 열에서 정렬하려면 결과를 데이터 집합으로 저장할 수 있습니다.

결과를 보려면 파이프라인에서 모델 교차 유효성 검사 구성 요소를 마우스 오른쪽 단추로 클릭합니다. 접기별로 평가 결과 시각화를 선택합니다.

열 이름 설명
접기 번호 각 폴드 식별자입니다. 5개의 접기를 만든 경우 0~4로 번호가 매겨진 5개의 데이터 하위 집합이 있습니다.
접는 예제 수 각 접기마다 할당된 행 수입니다. 그들은 대략 동일해야한다.

또한 구성 요소에는 평가 중인 모델 유형에 따라 각 폴드 마다 다음 메트릭이 포함됩니다.

  • 분류 모델: 정밀도, 재현율, F 점수, AUC, 정확도

  • 회귀 모델: 평균 절대 오차, 제곱 평균 오차, 상대 절대 오차, 상대 제곱 오차 및 결정 계수

기술 정보

  • 교차 유효성 검사에 사용하기 전에 데이터 집합을 정규화 하기를 권합니다.

  • 교차 유효성 검사 모델은 계산 집약적이며 임의로 분할된 데이터 세트를 사용하여 모델의 유효성을 검사한 경우보다 완료하는 데 훨씬 더 오래 걸립니다. 그 이유는 모델 교차 유효성 검사에서 모델을 여러 번 학습하고 유효성을 검사하기 때문입니다.

  • 교차 유효성 검사를 사용하여 모델의 정확도를 측정할 때 학습 및 테스트 집합으로 데이터 집합을 분할할 필요가 없습니다.

다음 단계

Azure Machine Learning에서 사용 가능한 구성 요소 집합을 참조하세요.