Main Content

분류 학습기의 분류기 성능 시각화 및 평가하기

분류 학습기에서 분류기를 훈련시킨 후 정확도 값을 기반으로 모델을 비교하고, 클래스 예측값을 플로팅하여 결과를 시각화하고, 혼동행렬과 ROC 곡선을 사용하여 성능을 검사할 수 있습니다.

  • k-겹 교차 검증을 사용하는 경우 앱은 k 검증 겹의 관측값을 사용하여 정확도 값을 계산하고 교차 검증 오차 평균값을 보고합니다. 또한 이러한 검증 겹에서 관측값을 예측하고, 이러한 예측을 기반으로 혼동행렬과 ROC 곡선을 계산합니다.

    참고

    데이터를 앱으로 가져올 때 디폴트 값을 수락하면 앱은 자동으로 교차 검증을 사용합니다. 자세한 내용은 검증 방식 선택하기 항목을 참조하십시오.

  • 홀드아웃 검증을 사용하는 경우 앱은 검증 겹의 관측값을 사용하여 정확도 값을 계산하고, 이러한 관측값에 대한 예측을 수행합니다. 또한 이러한 예측을 기반으로 혼동행렬과 ROC 곡선을 계산합니다.

  • 재대입 검증을 사용하는 경우 점수는 모든 훈련 데이터를 기반으로 한 재대입 정확도이며, 예측은 재대입 예측입니다.

모델 창에서 성능 검사하기

분류 학습기에서 모델을 훈련시킨 후 모델 창에서 전반적인 정확도(단위: 백분율)가 가장 우수한 모델을 확인합니다. 가장 높은 정확도(검증) 점수가 상자에 강조 표시됩니다. 이 점수는 검증 정확도입니다. 검증 정확도 점수는 훈련 데이터와 비교하여 새 데이터에 대한 모델의 성능을 추정합니다. 점수를 참고하면 가장 적합한 모델을 선택하는 데 도움이 됩니다.

Models and their validation accuracy values displayed in the Models pane

  • 교차 검증에서 점수는 테스트를 위해 남겨둔 것을 제외한 모든 관측값에 대한 정확도로, 각 관측값이 홀드아웃(검증) 겹에 있을 때마다 계산합니다.

  • 홀드아웃 검증의 경우 점수는 홀드아웃 관측값에 대한 정확도입니다.

  • 재대입 검증의 경우 점수는 모든 훈련 데이터 관측값에 대한 재대입 정확도입니다.

전반적인 점수가 가장 높은 모델이 목표에 가장 적합한 모델이 아닐 수도 있습니다. 전반적인 정확도가 약간 낮은 모델이 목표에 가장 적합한 분류기일 수 있습니다. 예를 들어 특정 클래스의 거짓양성이 중요할 수 있습니다. 데이터 수집이 어렵거나 비용이 많이 드는 일부 예측 변수를 제외하고 싶을 수도 있습니다.

각 클래스에서 분류기의 성능이 어땠는지 알아보려면 혼동행렬을 살펴보십시오.

요약 탭과 모델 창에서 모델 메트릭 보기

모델 요약 탭과 모델 창에서 모델 메트릭을 보고, 메트릭을 사용하여 모델을 평가하고 비교할 수 있습니다. 또는, 결과값 테이블 탭에서 모델을 비교할 수도 있습니다. 자세한 내용은 테이블 보기에서 모델 정보와 결과 비교하기 항목을 참조하십시오.

훈련 결과 메트릭은 검증 세트에서 계산됩니다. 테스트 결과 메트릭은 테스트 세트에서 계산됩니다(표시되는 경우). 자세한 내용은 테스트 세트에서 모델 성능 평가하기 항목을 참조하십시오.

Sample model Summary tab

모델 메트릭

메트릭설명
정확도올바르게 분류된 관측값의 백분율정확도가 큰 값을 찾으십시오.
총 비용총 오분류 비용총 비용 값이 작은 값을 찾으십시오. 정확도 값은 여전히 커야 합니다.
오차율오분류된 관측값의 백분율. 오차율은 1에서 정확도를 뺀 값입니다.오차율이 작은 값을 찾으십시오.
예측 속도검증 데이터 세트에 대한 예측 시간을 기반으로 기대되는 새 데이터 예측 속도앱 내부와 외부의 배경 프로세스가 이 추정값에 영향을 미칠 수 있으므로 더 잘 비교될 수 있도록 유사한 조건에서 모델을 훈련시키십시오.
훈련 시간모델을 훈련하는 데 소요된 시간앱 내부와 외부의 배경 프로세스가 이 추정값에 영향을 미칠 수 있으므로 더 잘 비교될 수 있도록 유사한 조건에서 모델을 훈련시키십시오.
모델 크기(간소)간소 모델로 내보낸 경우(즉, 훈련 데이터 없이 내보낸 경우) 모델 크기타깃 하드웨어 애플리케이션의 메모리 요구 사항에 맞는 모델 크기 값을 찾으십시오.

모델 창에서 정확도, 총 비용 또는 오차율에 따라 모델을 정렬할 수 있습니다. 모델 정렬을 위한 메트릭을 선택하려면 모델 창의 맨 위에 있는 정렬 기준 목록을 사용합니다. 일부 메트릭은 모델 창에서 정렬에 사용할 수 없습니다. 결과값 테이블에서 다른 메트릭을 기준으로 모델을 정렬할 수 있습니다(테이블 보기에서 모델 정보와 결과 비교하기 항목 참조).

또한 모델 창에서 원하지 않는 모델을 목록에서 삭제할 수도 있습니다. 삭제할 모델을 선택하고 창의 오른쪽 위에 있는 선택한 모델을 삭제합니다 버튼을 클릭하거나 모델을 마우스 오른쪽 버튼으로 클릭하고 삭제를 선택합니다. 마지막 남은 모델은 모델 창에서 삭제할 수 없습니다.

테이블 보기에서 모델 정보와 결과 비교하기

요약 탭이나 모델 창을 사용하여 모델 메트릭을 비교하는 대신 결과값 테이블을 사용할 수 있습니다. 학습 탭의 플롯 및 결과 섹션에서 결과값 테이블을 클릭합니다. 결과값 테이블에서 훈련 결과와 테스트 결과를 기준으로 모델을 정렬하는 것은 물론, 옵션(예: 모델 유형, 선택한 특징, PCA 등)을 기준으로 모델을 정렬할 수도 있습니다. 예를 들어, 검증 정확도를 기준으로 모델을 정렬하려면 정확도(검증) 열 헤더에서 정렬 화살표를 클릭합니다. 아래쪽 화살표는 모델이 가장 높은 정확도에서 가장 낮은 정확도 순으로 정렬됨을 나타냅니다.

테이블 열 옵션을 더 보려면 테이블의 오른쪽 위에 있는 "표시할 열 선택" 버튼 을 클릭합니다. "표시할 열 선택" 대화 상자에서 결과값 테이블에 표시할 열의 체크박스를 선택합니다. 새로 선택한 열은 오른쪽의 테이블에 추가됩니다.

Select Columns to Display dialog box

결과값 테이블 내에서 테이블 열이 원하는 순서로 나타나도록 수동으로 끌어서 놓을 수 있습니다.

즐겨찾기 열을 사용하여 일부 모델을 즐겨찾기로 표시할 수 있습니다. 즐겨찾기로 선택된 모델은 결과값 테이블과 모델 창에서 일관되게 유지됩니다. 다른 열과 달리 즐겨찾기 열과 모델 번호 열은 테이블에서 제거할 수 없습니다.

테이블에서 행을 제거하려면 행 내의 항목을 마우스 오른쪽 버튼으로 클릭하고 행 숨기기(또는 행이 강조 표시된 경우 선택한 행 숨기기)를 클릭합니다. 연속 행을 제거하려면 첫 번째 행 내의 항목을 클릭하고 Shift 키를 누른 다음 제거하려는 마지막 행 내의 항목을 클릭합니다. 그런 다음 강조 표시된 항목 중 하나를 마우스 오른쪽 버튼으로 클릭하고 선택한 행 숨기기를 클릭합니다. 제거된 모든 행을 복원하려면 테이블의 아무 항목이나 마우스 오른쪽 버튼으로 클릭하고 모든 행 표시를 클릭합니다. 복원된 행은 테이블 맨 아래에 추가됩니다.

테이블의 정보를 내보내려면 테이블의 오른쪽 위에 있는 내보내기 버튼 중 하나를 사용합니다. 테이블을 작업 공간으로 내보낼지 파일로 내보낼지 선택합니다. 내보낸 테이블에는 표시된 행과 열만 포함됩니다.

분류기 결과 플로팅하기

산점도 플롯을 사용하여 분류기 결과를 조사합니다. 모델의 산점도 플롯을 보려면 모델 창에서 모델을 선택합니다. 학습 탭의 플롯 및 결과 섹션에서 화살표를 클릭하여 갤러리를 연 다음 검증 결과 그룹에서 산점도를 클릭합니다. 분류기를 훈련시킨 후에는 산점도 플롯이 데이터 표시에서 모델 예측 표시로 전환됩니다. 홀드아웃 검증이나 교차 검증을 사용하는 경우, 예측값은 홀드아웃(검증) 관측값에 대한 예측입니다. 즉, 소프트웨어는 해당 관측값을 제외하고 훈련된 모델을 사용하여 각 예측을 얻습니다.

결과를 살펴보려면 오른쪽 컨트롤을 사용합니다. 가능한 작업:

  • 모델 예측값을 플로팅할지 데이터만 플로팅할지 선택합니다.

  • 모델 예측 아래의 체크박스를 사용하여 올바른 결과 또는 잘못된 결과를 표시하거나 숨깁니다.

  • 예측 변수X 목록과 Y 목록을 사용하여 플로팅할 특징을 선택합니다.

  • 표시의 체크박스를 사용하여 특정 클래스를 표시하거나 숨겨 클래스별로 결과를 시각화합니다.

  • 클래스에서 클래스를 선택한 다음 맨 앞으로 이동을 클릭하여 플로팅된 클래스의 쌓임 순서를 변경합니다.

  • 플롯을 확대/축소하거나 패닝합니다. 확대/축소 또는 패닝을 활성화하려면 산점도 플롯 위에 마우스를 올려놓고 플롯의 오른쪽 상단 위에 나타나는 도구 모음에서 해당 버튼을 클릭합니다.

Scatter plot of the Fisher iris data. Correctly classified points are marked with an O. Incorrectly classified points are marked with an X.

산점도 플롯에서 특징 조사하기 항목도 참조하십시오.

앱에서 만든 산점도 플롯을 Figure로 내보내려면 Export Plots in Classification Learner App 항목을 참조하십시오.

혼동행렬에서 클래스당 성능 검사하기

현재 선택한 분류기가 각 클래스에서 성능이 어땠는지 파악하려면 혼동행렬 플롯을 사용합니다. 분류 모델을 훈련시키고 나면 자동으로 해당 모델의 혼동행렬이 열립니다. "모두" 모델을 훈련시키는 경우 첫 번째 모델의 혼동행렬이 열립니다. 다른 모델의 혼동행렬을 보려면 모델 창에서 모델을 선택합니다. 학습 탭의 플롯 및 결과 섹션에서 화살표를 클릭하여 갤러리를 연 다음 검증 결과 그룹에서 혼동행렬(검증)을 클릭합니다. 혼동행렬은 분류기의 성능이 좋지 않은 영역을 식별하는 데 도움이 됩니다.

플롯을 열면 행에는 실제 클래스가 표시되고 열에는 예측 클래스가 표시됩니다. 홀드아웃 검증 또는 교차 검증을 사용하는 경우 홀드아웃(검증) 관측값에 대한 예측값을 사용하여 혼동행렬이 계산됩니다. 대각선 셀은 실제 클래스와 예측 클래스가 일치하는 위치를 보여줍니다. 이러한 대각선 셀이 파란색인 경우 분류기가 이 실제 클래스의 관측값을 올바르게 분류한 것입니다.

디폴트 뷰에서는 각 셀에 관측값 개수가 표시됩니다.

분류기의 클래스당 성능이 어땠는지 보려면 플롯에서 참양성률(TPR), 거짓음성률(FNR) 옵션을 선택합니다. TPR은 실제 클래스당 올바르게 분류된 관측값의 비율입니다. FNR은 실제 클래스당 잘못 분류된 관측값의 비율입니다. 플롯의 오른쪽 마지막 2개 열에는 실제 클래스당 요약이 표시됩니다.

백분율이 높고 주황색인 대각선에서 셀을 검사하여 분류기의 성능이 좋지 않은 영역을 찾습니다. 백분율이 높을수록 셀 색의 채도가 어두워집니다. 이러한 주황색 셀에서는 실제 클래스와 예측 클래스가 일치하지 않습니다. 데이터 점이 오분류되었습니다.

Confusion matrix assessing a model that predicts the country of origin for cars in the carbig data set

carbig 데이터 세트를 사용하는 이 예제에서는 위에서 다섯 번째 행에 실제 클래스가 Japan인 모든 자동차가 표시됩니다. 열에는 예측 클래스가 표시됩니다. 일본 자동차 중 77.2%는 올바르게 분류되었으므로 이 클래스에서 정확하게 분류된 점에 대한 참양성률은 77.2%이며, 이는 TPR 열에 파란색 셀로 표시되어 있습니다.

Japan 행에 있는 다른 자동차들은 오분류되었습니다. 5.1%는 독일 자동차, 5.1%는 스웨덴 자동차, 12.7%는 미국 자동차로 잘못 분류되었습니다. 이 클래스에서 잘못 분류된 점에 대한 거짓음성률은 22.8%이며, 이는 FNR 열에 주황색 셀로 표시되어 있습니다.

백분율 대신 관측값(이 예제의 경우 자동차) 개수를 보려면 플롯에서 관측값 개수를 선택합니다.

거짓양성이 분류 문제에서 중요한 경우, 오발견율을 조사하기 위해 실제 클래스 대신 예측 클래스당 결과를 플로팅합니다. 예측 클래스당 결과를 보려면 플롯에서 양성예측도(PPV), 오발견율(FDR) 옵션을 선택합니다. PPV는 예측 클래스당 올바르게 분류된 관측값의 비율입니다. FDR은 예측 클래스당 잘못 분류된 관측값의 비율입니다. 이 옵션을 선택하면 이제 혼동행렬에 요약 행이 포함되며 테이블 아래에 위치합니다. 각 클래스에서 올바르게 예측된 점에 대한 양성예측도는 파란색으로 표시되고 각 클래스에서 잘못 예측된 점에 대한 오발견율은 주황색으로 표시됩니다.

관심 클래스에 오분류된 점이 너무 많다고 판단되면 분류기 설정이나 특징 선택을 변경하여 더 나은 모델을 찾아보십시오.

앱에서 만든 혼동행렬 플롯을 Figure로 내보내려면 Export Plots in Classification Learner App 항목을 참조하십시오.

ROC 곡선 검사하기

모델을 훈련시킨 후 ROC(수신자 조작 특성) 곡선을 봅니다. 플롯 및 결과 섹션에서 화살표를 클릭하여 갤러리를 연 다음 검증 결과 그룹에서 ROC 곡선(검증)을 클릭합니다. 앱은 rocmetrics 함수를 사용하여 ROC 곡선을 만듭니다.

ROC curve for a binary classification problem

ROC 곡선은 현재 선택된 분류기가 계산한 분류 점수의 서로 다른 임계값에 대한 참양성률(TPR) 대 거짓양성률(FPR)을 보여줍니다. 모델 동작점은 분류기가 관측값을 분류하는 데 사용한 임계값에 대응하는 거짓양성률과 참양성률을 보여줍니다. 예를 들어, 거짓양성률이 0.4이면 분류기가 음성 클래스 관측값의 40%를 양성 클래스에 잘못 할당한다는 의미입니다. 참양성률이 0.9이면 분류기가 양성 클래스 관측값의 90%를 양성 클래스에 올바르게 할당한다는 의미입니다.

AUC(곡선 아래 영역) 값은 FPR = 0에서 FPR = 1 범위의 FPR에 대한 ROC 곡선(TPR 값)의 적분에 대응됩니다. AUC 값은 분류기의 전반적인 품질을 나타내는 척도입니다. AUC 값은 0에서 1 사이의 범위에 있으며, AUC 값이 클수록 분류기 성능이 우수함을 나타냅니다. 클래스와 훈련된 모델을 비교하여 ROC 곡선에서 서로 다른 성능을 보이는지 확인합니다.

플롯표시 체크박스를 사용하여 특정 클래스의 ROC 곡선을 만들 수 있습니다. 그러나 이진 분류 문제에서는 두 클래스 모두의 ROC 곡선을 검사할 필요가 없습니다. 두 ROC 곡선은 대칭이고 AUC 값은 동일합니다. 한 클래스의 TPR은 다른 클래스의 참음성률(TNR)이며, TNR은 1–FPR입니다. 따라서 한 클래스의 TPR 대 FPR에 대한 플롯은 다른 클래스의 1–FPR 대 1–TPR에 대한 플롯과 동일합니다.

다중클래스 분류기의 경우, 앱은 각 클래스에 대해 하나의 이진 문제를 갖도록 일대다(OVA) 이진 분류 문제 세트를 정식화하고, 대응하는 이진 문제를 사용하여 각 클래스에 대한 ROC 곡선을 구합니다. 각 이진 문제는 한 클래스가 양성이고 나머지는 음성이라고 가정합니다. 플롯의 모델 동작점은 일대다(OVA) 이진 문제에서 각 클래스에 대한 분류기의 성능을 보여줍니다.

ROC curves for a multiclass classification problem

자세한 내용은 rocmetrics 항목과 ROC Curve and Performance Metrics 항목을 참조하십시오.

앱에서 만든 ROC 곡선 플롯을 Figure로 내보내려면 Export Plots in Classification Learner App 항목을 참조하십시오.

레이아웃을 변경하여 모델 플롯 비교하기

학습 탭의 플롯 및 결과 섹션에서 플롯 옵션을 사용하여 분류 학습기에서 훈련된 모델의 결과를 시각화합니다. 플롯의 레이아웃을 재배열하여 여러 모델 간에 결과를 비교할 수 있습니다. 레이아웃 버튼을 클릭하면 나타나는 옵션을 사용하거나 플롯을 끌어서 놓거나 모델 플롯 탭의 오른쪽에 있는 문서 동작 버튼을 클릭하면 제공되는 옵션을 선택하십시오.

예를 들어 분류 학습기에서 두 모델을 훈련시킨 후 각 모델에 대한 플롯을 표시하고, 다음 절차 중 하나를 사용하여 플롯을 비교할 수 있도록 플롯 레이아웃을 변경합니다.

  • 플롯 및 결과 섹션에서 레이아웃을 클릭하고 모델 비교를 선택합니다.

  • 두 번째 모델 탭 이름을 클릭한 다음, 두 번째 모델 탭을 오른쪽에 끌어서 놓습니다.

  • 모델 플롯 탭의 오른쪽 끝에 있는 "문서 동작" 버튼을 클릭합니다. 모두 타일 형식으로 배열 옵션을 선택하고 1×2 레이아웃을 지정합니다.

    Selections for a side-by-side model comparison using the Document Actions button

참고로 플롯 오른쪽 위에 있는 "플롯 옵션을 숨깁니다" 버튼 을 클릭하여 플롯을 위한 더 많은 공간을 만들 수 있습니다.

테스트 세트에서 모델 성능 평가하기

분류 학습기에서 모델을 훈련시킨 후 앱의 테스트 세트에서 모델 성능을 평가할 수 있습니다. 이 프로세스를 통해 검증 정확도가 새로운 데이터에 대한 모델 성능에 양호한 추정값을 제공하는지 확인할 수 있습니다.

  1. 테스트 데이터 세트를 분류 학습기로 가져옵니다. 또는 앱으로 데이터를 가져올 때 일부 데이터를 테스트를 위해 남겨둡니다((선택 사항) 검정에 사용할 데이터 예약하기 항목 참조).

    • 테스트 데이터 세트가 MATLAB® 작업 공간에 있는 경우 테스트 탭의 데이터 섹션에서 테스트 데이터를 클릭하고 작업 공간에서를 선택합니다.

    • 테스트 데이터 세트가 파일에 있는 경우 데이터 섹션에서 테스트 데이터를 클릭하고 파일에서를 선택합니다. 목록에서 스프레드시트, 텍스트 파일 또는 쉼표로 구분된 값(.csv) 파일과 같은 파일 형식을 선택하거나 모든 파일을 선택하여 .dat와 같은 다른 파일 형식을 찾습니다.

    테스트 데이터 가져오기 대화 상자의 테스트 데이터 세트 변수 목록에서 테스트 데이터 세트를 선택합니다. 테스트 세트에는 훈련 및 검증용으로 가져온 예측 변수와 동일한 변수가 있어야 합니다. 테스트 응답 변수의 고유 값은 전체 응답 변수에 있는 클래스의 서브셋이어야 합니다.

  2. 테스트 세트 메트릭을 계산합니다.

    • 단일 모델의 테스트 메트릭을 계산하려면 모델 창에서 훈련된 모델을 선택합니다. 테스트 탭의 테스트 섹션에서 선택된 모델 테스트를 클릭합니다.

    • 모든 훈련된 모델의 테스트 메트릭을 계산하려면 테스트 섹션에서 모두 테스트를 클릭합니다.

    훈련 데이터와 검증 데이터를 포함한(테스트 데이터는 제외) 전체 데이터 세트에서 훈련된 각 모델의 테스트 세트 성능이 계산됩니다.

  3. 검증 정확도와 테스트 정확도를 비교합니다.

    모델 요약 탭에서 검증 메트릭과 테스트 메트릭이 각각 훈련 결과 섹션과 테스트 결과 섹션에 표시됩니다. 검증 정확도가 테스트 정확도에 대해 양호한 추정값을 제공하는지 확인할 수 있습니다.

    플롯을 사용하여 테스트 결과를 시각화할 수도 있습니다.

    • 혼동행렬을 표시합니다. 테스트 탭의 플롯 및 결과 섹션에서 혼동행렬(테스트)를 클릭합니다.

    • ROC 곡선을 표시합니다. 플롯 및 결과 섹션에서 ROC 곡선(테스트)를 클릭합니다.

예제는 Check Classifier Performance Using Test Set in Classification Learner App 항목을 참조하십시오. 하이퍼파라미터 최적화 워크플로에서 테스트 세트 메트릭을 사용하는 예제는 Train Classifier Using Hyperparameter Optimization in Classification Learner App 항목을 참조하십시오.

관련 항목