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.

The 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. The group аргумент должен иметь то же количество наблюдений, что и grouphat, как описано в сгруппированных переменных» (Statistics and Machine Learning Toolbox). The confusionmat функция обрабатывает символьные массивы и строковые массивы как массивы ячеек векторов символов. Кроме того, confusionmat обработки NaN, пустой и 'undefined' значения в group как отсутствующие значения и не считает их отдельными группами или категориями.

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

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

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

grouphat является сгруппированные переменные того же типа, что и group. The grouphat аргумент должен иметь то же количество наблюдений, что и group, как описано в сгруппированных переменных» (Statistics and Machine Learning Toolbox). The 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.

Пример: '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.

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

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

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

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

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