confusionmat

Вычислите матрицу беспорядка для проблемы классификации

Синтаксис

C = confusionmat(group,grouphat)
C = confusionmat(group,grouphat,'Order',grouporder)
[C,order] = confusionmat(___)

Описание

пример

C = confusionmat(group,grouphat) возвращает матрицу беспорядка C, определенный известными и предсказанными группами в group и grouphat, соответственно.

C = confusionmat(group,grouphat,'Order',grouporder) использование grouporder, чтобы заказать строки и столбцы C.

пример

[C,order] = confusionmat(___) также возвращает порядок строк и столбцов C в переменной order с помощью любого из входных параметров в предыдущих синтаксисах.

Примеры

свернуть все

Загрузите выборку предсказанных и истинных меток для проблемы классификации. trueLabels является истинными метками для проблемы классификации изображений, и predictedLabels прогнозы сверточной нейронной сети.

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

Calcualte числовая матрица беспорядка. 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 array
     airplane 
     automobile 
     bird 
     cat 
     deer 
     dog 
     frog 
     horse 
     ship 
     truck 

Можно использовать confusionchart, чтобы построить матрицу беспорядка как матричный график беспорядка.

figure
cm = confusionchart(m,order);

Вы не должны вычислять матрицу беспорядка сначала и затем строить ее. Вместо этого постройте матричный график беспорядка непосредственно от истинных и предсказанных меток. Можно также добавить столбец и сводные данные строки и заголовок.

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

Объектно-ориентированная память 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 array
     airplane 
     automobile 
     bird 
     cat 
     deer 
     dog 
     frog 
     horse 
     ship 
     truck 

Входные параметры

свернуть все

Известные группы для категоризации наблюдений, заданных как числовой вектор, логический вектор, символьный массив, массив строк, массив ячеек из символьных векторов или категориальный вектор.

group является группирующей переменной того же типа как grouphat. Аргумент group должен иметь то же количество наблюдений как grouphat, как описано в Группирующих переменных (Statistics and Machine Learning Toolbox). Функция confusionmat обрабатывает символьные массивы и строковые массивы как массивы ячеек из символьных векторов. Кроме того, confusionmat обрабатывает NaN, пустой, и значения 'undefined' в group как отсутствующие значения, и не считает их как отличные группы или категории.

Пример: {'Male','Female','Female','Male','Female'}

Типы данных: single | double | logical | char | string | cell | categorical

Предсказанные группы для категоризации наблюдений, заданных как числовой вектор, логический вектор, символьный массив, массив строк, массив ячеек из символьных векторов или категориальный вектор.

grouphat является группирующей переменной того же типа как group. Аргумент grouphat должен иметь то же количество наблюдений как group, как описано в Группирующих переменных (Statistics and Machine Learning Toolbox). Функция confusionmat обрабатывает символьные массивы и строковые массивы как массивы ячеек из символьных векторов. Кроме того, confusionmat обрабатывает NaN, пустой, и значения 'undefined' в grouphat как отсутствующие значения, и не считает их как отличные группы или категории.

Пример: [1 0 0 1 0]

Типы данных: single | double | logical | char | string | cell | categorical

Порядок группы, заданный как числовой вектор, логический вектор, символьный массив, массив строк, массив ячеек из символьных векторов или категориальный вектор.

grouporder является группирующей переменной, содержащей все отличные элементы в group и grouphat. Задайте grouporder, чтобы задать порядок строк и столбцов C. Если grouporder содержит элементы, которые не находятся в group или grouphat, соответствующими записями в C является 0.

По умолчанию порядок группы зависит от типа данных s = [group;grouphat]:

  • Для числовых и логических векторов порядок является отсортированным порядком s.

  • Для категориальных векторов порядок является порядком, возвращенным 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.

  • Для категориальных векторов порядок является порядком, возвращенным categories(s).

  • Для других типов данных порядок является порядком первого выступления в s.

Чтобы изменить порядок, задайте grouporder,

Функция confusionmat обрабатывает NaN, пустой, и значения 'undefined' в группирующих переменных как отсутствующие значения, и не включает их в строки и столбцы C.

Порядок строк и столбцов в C, возвращенном как числовой вектор, логический вектор, категориальный вектор или массив ячеек из символьных векторов. Если group и grouphat являются символьными массивами, строковыми массивами или массивами ячеек из символьных векторов, то переменная order является массивом ячеек из символьных векторов. В противном случае order имеет тот же тип как group и grouphat.

Альтернативная функциональность

  • Используйте confusionchart, чтобы вычислить и построить матрицу беспорядка. Кроме того, confusionchart отображает итоговую статистику о ваших данных и сортирует классы матрицы беспорядка согласно мудрой классом точности (положительное прогнозирующее значение), мудрый классом отзыв (истинный положительный уровень), или общее количество правильно классифицированных наблюдений.