exponenta event banner

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');

Вычислите числовую матрицу путаницы. 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 

Входные аргументы

свернуть все

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

group является переменной группирования того же типа, что и grouphat. group аргумент должен иметь то же количество замечаний, что и grouphat, как описано в разделе Группирование переменных (Статистика и инструментарий машинного обучения). confusionmat функция обрабатывает массивы символов и строковые массивы как массивы ячеек векторов символов. Дополнительно, confusionmat удовольствия NaN, пусто, и 'undefined' значения в group как отсутствующие значения и не считает их как отдельные группы или категории.

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

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

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

grouphat является переменной группирования того же типа, что и group. grouphat аргумент должен иметь то же количество замечаний, что и group, как описано в разделе Группирование переменных (Статистика и инструментарий машинного обучения). 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 отображает сводную статистику данных и сортирует классы матрицы путаницы в соответствии с точностью по классу (положительное прогностическое значение), отзывом по классу (истинная положительная частота) или общим количеством правильно классифицированных наблюдений.