confusionchart

Создайте матричный график неточностей для задачи классификации

Описание

пример

confusionchart(trueLabels,predictedLabels) создает путаницу матрицы графика из истинных меток trueLabels и предсказанные метки predictedLabels и возвращает ConfusionMatrixChart объект. Строки матрицы неточностей соответствуют истинному классу, а столбцы соответствуют предсказанному классу. Диагональные и недиагональные камеры соответствуют правильно и неправильно классифицированным наблюдениям, соответственно. Использование cm для изменения матричного графика неточностей после ее создания. Список свойств см. в разделе Свойства ConfusionMatrixChart.

пример

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

пример

confusionchart(m,classLabels) задает метки классов, которые появляются вдоль осей X и ось Y Используйте этот синтаксис, если у вас уже есть матрица числовых неточностей и метки классов в рабочей области.

confusionchart(parent,___) создает график неточностей в рисунке, панели или вкладке, заданные как parent.

confusionchart(___,Name,Value) задает дополнительные ConfusionMatrixChart свойства с использованием одного или нескольких аргументов пары "имя-значение". Задайте свойства после всех других входных параметров. Список свойств см. в разделе Свойства ConfusionMatrixChart.

cm = confusionchart(___) возвращает ConfusionMatrixChart объект. Использование cm для изменения свойств графика после ее создания. Список свойств см. в разделе Свойства ConfusionMatrixChart.

Примеры

свернуть все

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

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

Создайте матричный график неточностей.

figure
cm = confusionchart(trueLabels,predictedLabels);

Figure contains an object of type ConfusionMatrixChart.

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

cm.ColumnSummary = 'column-normalized';
cm.RowSummary = 'row-normalized';
cm.Title = 'CIFAR-10 Confusion Matrix';

Figure contains an object of type ConfusionMatrixChart. The chart of type ConfusionMatrixChart has title CIFAR-10 Confusion Matrix.

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

Загрузите образец матрицы неточностей m и связанных меток классов classLabels.

load('Cifar10ConfusionMat.mat','m','classLabels');
m
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

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

Создайте матричный график неточностей из матрицы числовых неточностей и меток классов.

cm = confusionchart(m,classLabels);

Figure contains an object of type ConfusionMatrixChart.

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

load('Cifar10Labels.mat','trueLabels','predictedLabels');
figure
cm = confusionchart(trueLabels,predictedLabels, ...
    'ColumnSummary','column-normalized', ...
    'RowSummary','row-normalized');

Figure contains an object of type ConfusionMatrixChart.

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

cm.Normalization = 'row-normalized';
sortClasses(cm,'descending-diagonal');
cm.Normalization = 'absolute';

Figure contains an object of type ConfusionMatrixChart.

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

cm.Normalization = 'column-normalized';
sortClasses(cm,'descending-diagonal');
cm.Normalization = 'absolute';

Figure contains an object of type ConfusionMatrixChart.

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

свернуть все

Истинные метки задачи классификации, заданные как категориальный вектор, числовой вектор, строковый вектор, символьный массив, массив ячеек из векторов символов или логический вектор. Если trueLabels является вектором, тогда каждый элемент соответствует одному наблюдению. Если trueLabels является символьным массивом, тогда он должен быть двумерным с каждой строкой, соответствующей метке одного наблюдения.

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

Матрица неточностей, заданная как матрица. m должен быть квадратным, а его элементы должны быть положительными целыми числами. Элемент m(i,j) - количество наблюдений за ith истинный класс был предсказан как jI класс. Каждая цветная камера матричного графика неточностей соответствует одному элементу матрицы неточностей m.

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

Родительский контейнер, заданный как Figure, Panel, Tab, TiledChartLayout, или GridLayout объект.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: cm = confusionchart(trueLabels,predictedLabels,'Title','My Title Text','ColumnSummary','column-normalized')

Примечание

Перечисленные здесь свойства являются только подмножеством. Полный список см. в разделе Свойства ConfusionMatrixChart.

Заголовок матричного графика неточностей, заданный как вектор символов или строковый скаляр.

Пример: cm = confusionchart(__,'Title','My Title Text')

Пример: cm.Title = 'My Title Text'

Сводные данные столбцов матричного графика неточностей, заданная как одно из следующего:

ОпцияОписание
'off'Не отображать сводные данные по столбцам.
'absolute'Отображение общего количества правильно и неправильно классифицированных наблюдений для каждого предсказанного класса.
'column-normalized'Отобразите количество правильно и неправильно классифицированных наблюдений для каждого предсказанного класса как проценты от количества наблюдений соответствующего предсказанного класса. Проценты правильно классифицированных наблюдений могут быть рассмотрены как классообразные точности (или положительные прогнозирующие значения).
'total-normalized'Отобразите количество правильно и неправильно классифицированных наблюдений для каждого предсказанного класса как проценты от общего количества наблюдений.

Пример: cm = confusionchart(__,'ColumnSummary','column-normalized')

Пример: cm.ColumnSummary = 'column-normalized'

Сводные данные строк матричного графика неточностей, заданная как одно из следующего:

ОпцияОписание
'off'Не отображать сводные данные по строкам.
'absolute'Отобразите общее количество правильно и неправильно классифицированных наблюдений для каждого истинного класса.
'row-normalized'Отобразите количество правильно и неправильно классифицированных наблюдений для каждого истинного класса как проценты от количества наблюдений соответствующего истинного класса. Процентные доли правильно классифицированных наблюдений могут быть рассмотрены как классово-ориентированные напоминания (или истинные положительные скорости).
'total-normalized'Отобразите количество правильно и неправильно классифицированных наблюдений для каждого истинного класса как проценты от общего количества наблюдений.

Пример: cm = confusionchart(__,'RowSummary','row-normalized')

Пример: cm.RowSummary = 'row-normalized'

Нормализация значений камер, заданная как одно из следующего:

ОпцияОписание
'absolute'Отображение общего количества наблюдений в каждой камере.
'column-normalized'Нормализуйте каждое значение камеры по количеству наблюдений, которое имеет один и тот же предсказанный класс.
'row-normalized'Нормализуйте каждое значение камеры по количеству наблюдений, которое имеет один и тот же истинный класс.
'total-normalized'Нормализуйте каждое значение камеры по общему количеству наблюдений.

Изменение нормализации значений камер также влияет на цвета камер.

Пример: cm = confusionchart(__,'Normalization','total-normalized')

Пример: cm.Normalization = 'total-normalized'

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

свернуть все

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

Ограничения

  • MATLAB® генерация кода не поддерживается для ConfusionMatrixChart объекты.

Подробнее о

свернуть все

Автономная визуализация

Автономная визуализация является графиком, предназначенной для специального назначения, которая работает независимо от других графиков. В отличие от других графиков, таких как plot и surfавтономная визуализация имеет встроенный в нее предварительно сконфигурированный объект осей, и некоторые индивидуальные настройки недоступны. Автономная визуализация также имеет следующие характеристики:

  • Он не может быть объединен с другими графическими элементами, такими как линии, закрашенные фигуры или поверхности. Таким образом, hold команда не поддерживается.

  • The gca функция может вернуть объект графика как текущие системы координат.

  • Можно передать объект графика во многие функции MATLAB, которые принимают объект осей как входной параметр. Например, можно передать объект графика в title функция.

Совет

  • Если у вас есть данные с одной горячей точкой (one-of-N), используйте onehotdecode чтобы подготовить ваши данные для использования с confusionchart. Например, предположим, что у вас есть истинные метки targets и предсказанные метки outputs, с наблюдениями в столбцах. Можно создать матричный график неточностей, используя

    numClasses = size(targets,1);
    trueLabels = onehotdecode(targets,1:numClasses,1);
    predictedLabels = onehotdecode(outputs,1:numClasses,1);
    confusionchart(trueLabels,predictedLabels)

  • Если у вас есть Statistics and Machine Learning Toolbox™, можно создать матричный график неточностей для длинных массивов. Для получения дополнительной информации см. confusionchart (Statistics and Machine Learning Toolbox) и матрица неточностей для классификации с использованием длинных массивов (Statistics and Machine Learning Toolbox).

Введенный в R2018b