confusionchart

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

Синтаксис

cm = confusionchart(trueLabels,predictedLabels)
cm = confusionchart(m)
cm = confusionchart(m,classLabels)
cm = confusionchart(parent,___)
cm = confusionchart(___,Name,Value)

Описание

пример

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

пример

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

пример

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

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

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

Примеры

свернуть все

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

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

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

figure
cm = confusionchart(trueLabels,predictedLabels);

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

cm.ColumnSummary = 'column-normalized';
cm.RowSummary = 'row-normalized';
cm.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 array
     airplane 
     automobile 
     bird 
     cat 
     deer 
     dog 
     frog 
     horse 
     ship 
     truck 

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

cm = confusionchart(m,classLabels);

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

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

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

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

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

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

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

свернуть все

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

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

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

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

Родительский контейнер, в котором можно построить, заданный как Figure, Panel или объект Tab.

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

Примечание

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

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

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

Советы

Введенный в R2018b