Main Content

confusionmat

분류 문제에 대한 혼동행렬 계산

설명

예제

C = confusionmat(group,grouphat)은 알려진 그룹 group과 예측된 그룹 grouphat에 의해 결정된 혼동행렬 C를 반환합니다.

C = confusionmat(group,grouphat,'Order',grouporder)grouporder를 사용하여 C의 행과 열의 순서를 정합니다.

예제

[C,order] = confusionmat(___)은 위에 열거된 구문에 나와 있는 입력 인수를 사용하여 변수 orderC의 행과 열의 순서도 반환합니다.

예제

모두 축소

분류 문제에 대한 예측 레이블과 실제 레이블의 샘플을 불러옵니다. trueLabels는 영상 분류 문제에 대한 실제 레이블이고 predictedLabels는 컨벌루션 신경망의 예측입니다.

load('Cifar10Labels.mat','trueLabels','predictedLabels');

숫자형 혼동행렬을 계산합니다. order는 혼동행렬의 클래스 순서입니다.

[m,order] = confusionmat(trueLabels,predictedLabels)
m = 10×10

   923     4    21     8     4     1     5     5    23     6
     5   972     2     0     0     0     0     1     5    15
    26     2   892    30    13     8    17     5     4     3
    12     4    32   826    24    48    30    12     5     7
     5     1    28    24   898    13    14    14     2     1
     7     2    28   111    18   801    13    17     0     3
     5     0    16    27     3     4   943     1     1     0
     9     1    14    13    22    17     3   915     2     4
    37    10     4     4     0     1     2     1   931    10
    20    39     3     3     0     0     2     1     9   923

order = 10x1 categorical
     airplane 
     automobile 
     bird 
     cat 
     deer 
     dog 
     frog 
     horse 
     ship 
     truck 

confusionchart를 사용하여 혼동행렬을 혼동행렬 차트로 플로팅할 수 있습니다.

figure
cm = confusionchart(m,order);

Figure contains an object of type ConfusionMatrixChart.

혼동행렬을 먼저 계산한 다음 플로팅할 필요가 없습니다. 대신, 실제 레이블과 예측 레이블에서 직접 혼동행렬 차트를 플로팅합니다. 열과 행의 요약과 제목도 추가할 수 있습니다.

figure
cm = confusionchart(trueLabels,predictedLabels, ...
    'Title','My Title', ...
    'RowSummary','row-normalized', ...
    'ColumnSummary','column-normalized');

Figure contains an object of type ConfusionMatrixChart. The chart of type ConfusionMatrixChart has title My Title.

ConfusionMatrixChart 객체는 NormalizedValues 속성에 숫자형 혼동행렬을 저장하고 ClassLabels 속성에 클래스를 저장합니다.

cm.NormalizedValues
ans = 10×10

   923     4    21     8     4     1     5     5    23     6
     5   972     2     0     0     0     0     1     5    15
    26     2   892    30    13     8    17     5     4     3
    12     4    32   826    24    48    30    12     5     7
     5     1    28    24   898    13    14    14     2     1
     7     2    28   111    18   801    13    17     0     3
     5     0    16    27     3     4   943     1     1     0
     9     1    14    13    22    17     3   915     2     4
    37    10     4     4     0     1     2     1   931    10
    20    39     3     3     0     0     2     1     9   923

cm.ClassLabels
ans = 10x1 categorical
     airplane 
     automobile 
     bird 
     cat 
     deer 
     dog 
     frog 
     horse 
     ship 
     truck 

입력 인수

모두 축소

관측값을 분류하는 데 사용되는 알려진 그룹으로, 숫자형 벡터, 논리형 벡터, 문자형 배열, string형 배열, 문자형 벡터로 구성된 셀형 배열 또는 categorical형 벡터로 지정됩니다.

groupgrouphat과 같은 유형의 그룹화 변수입니다. group 인수는 grouphat과 관측값 개수가 같아야 합니다(그룹화 변수 (Statistics and Machine Learning Toolbox) 참조). confusionmat 함수는 문자형 배열과 string형 배열을 문자형 벡터로 구성된 셀형 배열로 처리합니다. 또한 confusionmatgroup에 있는 NaN 값, 빈 값, 'undefined' 값을 누락값으로 처리하여 이러한 값을 고유한 그룹이나 범주로 간주하지 않습니다.

예: {'Male','Female','Female','Male','Female'}

데이터형: single | double | logical | char | string | cell | categorical

관측값을 분류하는 데 사용되는 예측된 그룹으로, 숫자형 벡터, 논리형 벡터, 문자형 배열, string형 배열, 문자형 벡터로 구성된 셀형 배열 또는 categorical형 벡터로 지정됩니다.

grouphatgroup과 같은 유형의 그룹화 변수입니다. grouphat 인수는 group과 관측값 개수가 같아야 합니다(그룹화 변수 (Statistics and Machine Learning Toolbox) 참조). confusionmat 함수는 문자형 배열과 string형 배열을 문자형 벡터로 구성된 셀형 배열로 처리합니다. 또한 confusionmatgrouphat에 있는 NaN 값, 빈 값, 'undefined' 값을 누락값으로 처리하여 이러한 값을 고유한 그룹이나 범주로 간주하지 않습니다.

예: [1 0 0 1 0]

데이터형: single | double | logical | char | string | cell | categorical

그룹 순서로, 숫자형 벡터, 논리형 벡터, 문자형 배열, string형 배열, 문자형 벡터로 구성된 셀형 배열 또는 categorical형 벡터로 지정됩니다.

groupordergroupgrouphat에 있는 모든 고유한 요소를 포함하는 그룹화 변수입니다. grouporder를 지정하여 C의 행과 열의 순서를 정의할 수 있습니다. groupordergroup 또는 grouphat에 속하지 않는 요소가 포함된 경우 이에 대응하는 C의 요소는 0이 됩니다.

기본적으로 그룹 순서는 s = [group;grouphat]의 데이터형에 따라 달라집니다.

  • 숫자형 벡터와 논리형 벡터의 경우 s의 정렬된 순서로 표시됩니다.

  • categorical형 벡터의 경우 categories(s)에서 반환하는 순서로 표시됩니다.

  • 기타 데이터형의 경우 s에 처음 나타난 순서로 표시됩니다.

예: 'order',{'setosa','versicolor','virginica'}

데이터형: single | double | logical | char | string | cell | categorical

출력 인수

모두 축소

혼동행렬로, group 인수와 grouphat 인수에 포함된 고유한 요소의 총 개수와 크기가 같은 정사각 행렬로 반환됩니다. C(i,j)는 그룹 i에 속하는 것으로 알려져 있지만 그룹 j에 속할 것으로 예측된 관측값의 개수입니다.

C의 행과 열은 동일한 그룹 인덱스와 순서가 같습니다. 기본적으로 그룹 순서는 s = [group;grouphat]의 데이터형에 따라 달라집니다.

  • 숫자형 벡터와 논리형 벡터의 경우 s의 정렬된 순서로 표시됩니다.

  • categorical형 벡터의 경우 categories(s)에서 반환하는 순서로 표시됩니다.

  • 기타 데이터형의 경우 s에 처음 나타난 순서로 표시됩니다.

순서를 변경하려면 grouporder를 지정하십시오.

confusionmat 함수는 그룹화 변수에 있는 NaN 값, 빈 값, 'undefined' 값을 누락값으로 처리하며, 이러한 값을 C의 행과 열에 포함하지 않습니다.

C에 포함된 행과 열의 순서로, 숫자형 벡터, 논리형 벡터, categorical형 벡터 또는 문자형 벡터로 구성된 셀형 배열로 반환됩니다. groupgrouphat이 문자형 배열, string형 배열 또는 문자형 벡터로 구성된 셀형 배열인 경우 변수 order는 문자형 벡터로 구성된 셀형 배열입니다. 그 외의 경우 ordergroupgrouphat과 동일한 유형입니다.

대체 기능

  • confusionchart를 사용하여 혼동행렬을 계산하고 플로팅할 수 있습니다. 또한 confusionchart는 데이터에 대한 요약 통계량을 표시하고 클래스별 정밀도(양성예측도), 클래스별 재현율(참양성률) 또는 올바르게 분류된 총 관측값 개수에 따라 혼동행렬의 클래스를 정렬합니다.