exponenta event banner

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) - количество раз, когда наблюдение iИстинный класс был предсказан как принадлежащий jВ-й класс. Каждая цветная ячейка матрицы путаницы соответствует одному элементу матрицы путаницы 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 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'Нормализуйте каждое значение ячейки по количеству наблюдений, имеющих один и тот же класс true.
'total-normalized'Нормализуйте каждое значение ячейки по общему количеству наблюдений.

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

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

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

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

свернуть все

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

Ограничения

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

Подробнее

свернуть все

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

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

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

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

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

Совет

  • При наличии данных «один горячий» («один из N») используйте onehotdecode для подготовки данных к использованию с confusionchart. Например, предположим, что у вас есть истинные метки targets и прогнозируемые метки outputs, с наблюдениями в столбцах. Можно создать матричную диаграмму путаницы с помощью

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

  • При наличии Toolbox™ статистики и машинного обучения можно создать матричную диаграмму путаницы для больших массивов. Для получения более подробной информации см. confusionchart (Статистика и инструментарий машинного обучения) и Матрица путаницы для классификации с использованием массивов Tall (Статистика и инструментарий машинного обучения).

Представлен в R2018b