Создание матричной диаграммы путаницы для проблемы классификации
confusionchart( создает матричную диаграмму путаницы из истинных меток trueLabels,predictedLabels)trueLabels и прогнозируемые метки predictedLabels и возвращает ConfusionMatrixChart объект. Строки матрицы путаницы соответствуют истинному классу, а столбцы - прогнозируемому классу. Диагональные и внедиагональные ячейки соответствуют корректно и неправильно классифицированным наблюдениям соответственно. Использовать cm для изменения матричной диаграммы путаницы после ее создания. Для списка свойств посмотрите ConfusionMatrixChart Properties.
confusionchart( создает матрицу путаницы из числовой матрицы путаницы m)m. Используйте этот синтаксис, если в рабочей области уже имеется числовая матрица путаницы.
confusionchart( указывает метки классов, которые отображаются вдоль осей X и Y. Используйте этот синтаксис, если в рабочей области уже имеется числовая матрица путаницы и метки классов.m,classLabels)
confusionchart( создает таблицу путаницы на рисунке, панели или вкладке, указанной parent,___)parent.
confusionchart(___, указывает дополнительные Name,Value)ConfusionMatrixChart с использованием одного или нескольких аргументов пары имя-значение. Укажите свойства после всех других входных аргументов. Для списка свойств посмотрите ConfusionMatrixChart Properties.
возвращает значение cm = confusionchart(___)ConfusionMatrixChart объект. Использовать cm для изменения свойств диаграммы после ее создания. Для списка свойств посмотрите ConfusionMatrixChart Properties.
Загрузите набор данных радужки Фишера.
load fisheriris
X = meas;
Y = species;X - числовая матрица, содержащая четыре измерения лепестка для 150 ирисов. Y - клеточный массив символьных векторов, который содержит соответствующие виды радужки.
Обучить классификатор k-ближайших соседей (KNN), где число ближайших соседей в предикторах (k) равно 5. Хорошей практикой является стандартизация данных числового предиктора.
Mdl = fitcknn(X,Y,'NumNeighbors',5,'Standardize',1);
Спрогнозировать метки данных обучения.
predictedY = resubPredict(Mdl);
Создание матричной диаграммы путаницы из истинных меток Y и прогнозируемые метки predictedY.
cm = confusionchart(Y,predictedY);

Матрица путаницы отображает общее количество наблюдений в каждой ячейке. Строки матрицы путаницы соответствуют истинному классу, а столбцы - прогнозируемому классу. Диагональные и внедиагональные ячейки соответствуют корректно и неправильно классифицированным наблюдениям соответственно.
По умолчанию confusionchart сортирует классы в их естественный порядок, как определено sort. В этом примере метки класса являются символьными векторами, поэтому confusionchart сортировка классов по алфавиту. Использовать sortClasses для сортировки классов по заданному порядку или по значениям матрицы путаницы.
NormalizedValues содержит значения матрицы путаницы. Отображение этих значений с помощью точечной нотации.
cm.NormalizedValues
ans = 3×3
50 0 0
0 47 3
0 4 46
Изменение внешнего вида и поведения матричной диаграммы путаницы путем изменения значений свойств. Добавьте заголовок.
cm.Title = 'Iris Flower Classification Using KNN';Добавление сводок по столбцам и строкам.
cm.RowSummary = 'row-normalized'; cm.ColumnSummary = 'column-normalized';

Сводка строк, нормированная по строкам, отображает проценты корректно и неправильно классифицированных наблюдений для каждого истинного класса. Сводка столбцов, нормированная по столбцам, отображает проценты корректно и неправильно классифицированных наблюдений для каждого прогнозируемого класса.
Создайте матричную диаграмму путаницы и сортируйте классы диаграммы в соответствии с классовой истинной положительной скоростью (отзыв) или классовой положительной прогностической величиной (точность).
Загрузить и осмотреть arrhythmia набор данных.
load arrhythmia
isLabels = unique(Y);
nLabels = numel(isLabels)nLabels = 13
tabulate(categorical(Y))
Value Count Percent
1 245 54.20%
2 44 9.73%
3 15 3.32%
4 15 3.32%
5 13 2.88%
6 25 5.53%
7 3 0.66%
8 2 0.44%
9 9 1.99%
10 50 11.06%
14 4 0.88%
15 5 1.11%
16 22 4.87%
Данные содержат 16 различных меток, которые описывают различные степени аритмии, но ответ (Y) включает только 13 отдельных меток.
Обучить дерево классификации и предсказать отклик на повторное замещение дерева.
Mdl = fitctree(X,Y); predictedY = resubPredict(Mdl);
Создание матричной диаграммы путаницы из истинных меток Y и прогнозируемые метки predictedY. Определить 'RowSummary' как 'row-normalized' для отображения истинных положительных ставок и ложных положительных ставок в сводке строк. Также укажите 'ColumnSummary' как 'column-normalized' для отображения положительных прогностических значений и ложных показателей обнаружения в сводке столбцов.
fig = figure; cm = confusionchart(Y,predictedY,'RowSummary','row-normalized','ColumnSummary','column-normalized');
Измените размер контейнера таблицы путаницы, чтобы проценты отображались в сводке строк.
fig_Position = fig.Position; fig_Position(3) = fig_Position(3)*1.5; fig.Position = fig_Position;

Чтобы отсортировать матрицу путаницы в соответствии с истинной положительной скоростью, нормализуйте значения ячеек в каждой строке, установив значение Normalization свойство для 'row-normalized' а затем использовать sortClasses. После сортировки сбросьте Normalization свойство возвращается к 'absolute' для отображения общего количества наблюдений в каждой ячейке.
cm.Normalization = 'row-normalized'; sortClasses(cm,'descending-diagonal') cm.Normalization = 'absolute';

Чтобы отсортировать матрицу путаницы по положительному прогностическому значению, нормализуйте значения ячеек в каждом столбце, установив значение Normalization свойство для 'column-normalized' а затем использовать sortClasses. После сортировки сбросьте Normalization свойство возвращается к 'absolute' для отображения общего количества наблюдений в каждой ячейке.
cm.Normalization = 'column-normalized'; sortClasses(cm,'descending-diagonal') cm.Normalization = 'absolute';

Выполните классификацию для высокого массива набора данных радужки Фишера. Вычислите матричную диаграмму путаницы для известных и прогнозируемых высоких меток с помощью confusionchart функция.
При выполнении вычислений в массивах TALL MATLAB ® использует либо параллельный пул (по умолчанию при наличии Toolbox™ Parallel Computing), либо локальный сеанс MATLAB. Для выполнения примера с использованием локального сеанса MATLAB при наличии панели инструментов Parallel Computing Toolbox измените глобальную среду выполнения с помощью mapreducer функция.
mapreducer(0)
Загрузите набор данных радужки Фишера.
load fisheririsПреобразование массивов в памяти meas и species в массивы с высоким уровнем.
tx = tall(meas); ty = tall(species);
Найдите количество наблюдений в массиве с высоким уровнем.
numObs = gather(length(ty)); % gather collects tall array into memoryУстановка начальных значений генераторов случайных чисел с помощью rng и tallrng для воспроизводимости и случайного выбора обучающих образцов. Результаты могут варьироваться в зависимости от количества работников и среды выполнения для массивов tall. Дополнительные сведения см. в разделе Управление местом запуска кода.
rng('default') tallrng('default') numTrain = floor(numObs/2); [txTrain,trIdx] = datasample(tx,numTrain,'Replace',false); tyTrain = ty(trIdx);
Поместите модель классификатора дерева решений в учебные образцы.
mdl = fitctree(txTrain,tyTrain);
Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 2: Completed in 0.87 sec - Pass 2 of 2: Completed in 0.99 sec Evaluation completed in 3.3 sec Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 4: Completed in 0.46 sec - Pass 2 of 4: Completed in 0.58 sec - Pass 3 of 4: Completed in 0.71 sec - Pass 4 of 4: Completed in 1.2 sec Evaluation completed in 3.5 sec Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 4: Completed in 0.28 sec - Pass 2 of 4: Completed in 0.31 sec - Pass 3 of 4: Completed in 0.36 sec - Pass 4 of 4: Completed in 0.37 sec Evaluation completed in 1.7 sec Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 4: Completed in 0.19 sec - Pass 2 of 4: Completed in 0.22 sec - Pass 3 of 4: Completed in 0.24 sec - Pass 4 of 4: Completed in 0.22 sec Evaluation completed in 1.2 sec Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 4: Completed in 0.22 sec - Pass 2 of 4: Completed in 0.21 sec - Pass 3 of 4: Completed in 0.41 sec - Pass 4 of 4: Completed in 0.23 sec Evaluation completed in 1.3 sec
Прогнозирование меток для тестовых образцов с использованием обученной модели.
txTest = tx(~trIdx,:); label = predict(mdl,txTest);
Создайте матричную диаграмму путаницы для результирующей классификации.
tyTest = ty(~trIdx); cm = confusionchart(tyTest,label)
Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 1: Completed in 0.16 sec Evaluation completed in 0.53 sec Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 1: Completed in 0.21 sec Evaluation completed in 0.35 sec

cm =
ConfusionMatrixChart with properties:
NormalizedValues: [3x3 double]
ClassLabels: {3x1 cell}
Show all properties
Таблица матрицы путаницы показывает, что три измерения в классе versicolor имеют неправильную классификацию. Все измерения, относящиеся к setosa и virginica, классифицированы правильно.
trueLabels - Истинные метки проблемы классификацииИстинные метки проблемы классификации, указанные как категориальный вектор, числовой вектор, строковый вектор, символьный массив, массив ячеек символьных векторов или логический вектор. Если trueLabels является вектором, то каждый элемент соответствует одному наблюдению. Если trueLabels является массивом символов, то он должен быть двумерным с каждой строкой, соответствующей метке одного наблюдения.
predictedLabels - Прогнозируемые метки проблемы классификацииПрогнозируемые метки проблемы классификации, указанные как категориальный вектор, числовой вектор, строковый вектор, символьный массив, массив ячеек символьных векторов или логический вектор. Если predictedLabels является вектором, то каждый элемент соответствует одному наблюдению. Если predictedLabels является массивом символов, то он должен быть двумерным с каждой строкой, соответствующей метке одного наблюдения.
m - Матрица путаницыМатрица путаницы, заданная как матрица. m должен быть квадратным и его элементы должны быть положительными целыми числами. Элемент m(i,j) - количество раз, когда наблюдение iИстинный класс был предсказан как принадлежащий jВ-й класс. Каждая цветная ячейка матрицы путаницы соответствует одному элементу матрицы путаницы m.
classLabels - Этикетки классовМетки классов матричной диаграммы путаницы, указанные как категориальный вектор, числовой вектор, строковый вектор, символьный массив, массив ячеек символьных векторов или логический вектор. Если classLabels является вектором, то он должен иметь такое же количество элементов, как матрица путаницы имеет строки и столбцы. Если classLabels является массивом символов, то он должен быть двумерным с каждой строкой, соответствующей метке одного класса.
parent - Родительский контейнерFigure объект | Panel объект | Tab объект | TiledChartLayout объект | GridLayout объектРодительский контейнер, указанный как 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.
'Title' - Название'' (по умолчанию) | символьный вектор | строковый скалярЗаголовок матричной диаграммы путаницы, определяемый как вектор символов или строковый скаляр.
Пример: cm = confusionchart(__,'Title','My Title Text')
Пример: cm.Title = 'My Title Text'
'ColumnSummary' - Сводка по столбцам'off' (по умолчанию) | 'absolute' | 'column-normalized' | 'total-normalized'Сводка по столбцам матричной диаграммы путаницы, определяемая как одно из следующих значений:
| Выбор | Описание |
|---|---|
'off' | Не отображать сводку по столбцам. |
'absolute' | Отображение общего количества правильно и неправильно классифицированных наблюдений для каждого прогнозируемого класса. |
'column-normalized' | Отображение количества правильно и неправильно классифицированных наблюдений для каждого прогнозируемого класса в процентах от числа наблюдений соответствующего прогнозируемого класса. Проценты правильно классифицированных наблюдений можно рассматривать как сортовые уточнения (или положительные прогностические значения). |
'total-normalized' | Отображение количества правильно и неправильно классифицированных наблюдений для каждого прогнозируемого класса в процентах от общего числа наблюдений. |
Пример: cm = confusionchart(__,'ColumnSummary','column-normalized')
Пример: cm.ColumnSummary = 'column-normalized'
'RowSummary' - Сводка строк'off' (по умолчанию) | 'absolute' | 'row-normalized' | 'total-normalized'Сводка строк матричной диаграммы путаницы, указанная как одно из следующих значений:
| Выбор | Описание |
|---|---|
'off' | Не отображать сводку строк. |
'absolute' | Отображение общего количества правильно и неправильно классифицированных наблюдений для каждого истинного класса. |
'row-normalized' | Отображение количества правильно и неправильно классифицированных наблюдений для каждого истинного класса в процентах от числа наблюдений соответствующего истинного класса. Процент правильно классифицированных наблюдений можно рассматривать как классовые отзывы (или истинные положительные показатели). |
'total-normalized' | Отображение количества правильно и неправильно классифицированных наблюдений для каждого истинного класса в процентах от общего числа наблюдений. |
Пример: cm = confusionchart(__,'RowSummary','row-normalized')
Пример: cm.RowSummary = 'row-normalized'
'Normalization' - Нормализация значений ячеек'absolute' (по умолчанию) | 'column-normalized' | 'row-normalized' | 'total-normalized'Нормализация значений ячеек, указанных как одно из следующих:
| Выбор | Описание |
|---|---|
'absolute' | Отображение общего количества наблюдений в каждой ячейке. |
'column-normalized' | Нормализуйте каждое значение ячейки по количеству наблюдений, имеющих один и тот же прогнозируемый класс. |
'row-normalized' | Нормализуйте каждое значение ячейки по количеству наблюдений, имеющих один и тот же класс true. |
'total-normalized' | Нормализуйте каждое значение ячейки по общему количеству наблюдений. |
Изменение нормализации значений ячеек также влияет на цвета ячеек.
Пример: cm = confusionchart(__,'Normalization','total-normalized')
Пример: cm.Normalization = 'total-normalized'
cm - Объект матрицы путаницыConfusionMatrixChart объектConfusionMatrixChart объект, представляющий собой автономную визуализацию. Использовать cm для установки свойств матричной диаграммы путаницы после ее создания.
Генерация кода MATLAB ® не поддерживается дляConfusionMatrixChart объекты.
Автономная визуализация - это диаграмма, предназначенная для специального назначения, работающая независимо от других диаграмм. В отличие от других диаграмм, таких как plot и surf, автономная визуализация имеет встроенный в нее предварительно настроенный объект оси, и некоторые настройки недоступны. Автономная визуализация также имеет следующие характеристики:
Его нельзя комбинировать с другими графическими элементами, такими как линии, фрагменты или поверхности. Таким образом, hold команда не поддерживается.
gca функция может возвращать объект диаграммы в качестве текущих осей.
Объект диаграммы можно передать во многие функции MATLAB, которые принимают объект axes в качестве входного аргумента. Например, можно передать объект диаграммы в title функция.
Эта функция полностью поддерживает массивы tall. Дополнительные сведения см. в разделе Массивы Tall.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.