confusionchart

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

Описание

пример

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

пример

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

пример

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

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

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

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

Примеры

свернуть все

Загрузите выборку предсказанных и истинных меток для проблемы классификации. 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 истинный класс был предсказан, чтобы быть jкласс th. Каждая цветная ячейка матричного графика беспорядка соответствует одному элементу матрицы беспорядка m.

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

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

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. 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'

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

свернуть все

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

Ограничения

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

Больше о

свернуть все

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

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

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

  • 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