Вычислить матрицу путаницы для задачи классификации
использование C = confusionmat(group,grouphat,'Order',grouporder)grouporder для упорядочения строк и столбцов C.
Отображение матрицы путаницы для данных с двумя ошибочными классификациями и одной отсутствующей классификацией.
Создайте векторы для известных и прогнозируемых групп.
g1 = [3 2 2 3 1 1]'; % Known groups g2 = [4 2 3 NaN 1 1]'; % Predicted groups
Верните матрицу путаницы.
C = confusionmat(g1,g2)
C = 4×4
2 0 0 0
0 1 1 0
0 0 0 1
0 0 0 0
Индексы строк и столбцов матрицы путаницы C идентичны и расположены по умолчанию в отсортированном порядке [g1;g2], то есть (1,2,3,4).
Матрица путаницы показывает, что две точки данных, известные как находящиеся в группе 1, классифицированы правильно. Для группы 2 одна из точек данных неправильно классифицируется в группу 3. Кроме того, одна из точек данных, как известно, находится в группе 3, неправильно классифицируется в группу 4. confusionmat обрабатывает NaN значение в переменной группировки g2 как отсутствующее значение и не включает его в строки и столбцы C.
Постройте график матрицы путаницы в виде таблицы матрицы путаницы с помощью confusionchart.
confusionchart(C)

Сначала не нужно вычислять матрицу путаницы, а затем выводить ее на график. Вместо этого постройте график матрицы путаницы непосредственно из истинных и прогнозируемых меток с помощью confusionchart.
cm = confusionchart(g1,g2)

cm =
ConfusionMatrixChart with properties:
NormalizedValues: [4x4 double]
ClassLabels: [4x1 double]
Show all properties
ConfusionMatrixChart объект сохраняет числовую матрицу путаницы в NormalizedValues и классы в ClassLabels собственность. Отображение этих свойств с помощью точечной нотации.
cm.NormalizedValues
ans = 4×4
2 0 0 0
0 1 1 0
0 0 0 1
0 0 0 0
cm.ClassLabels
ans = 4×1
1
2
3
4
Просмотрите матрицу путаницы для данных с двумя ошибочными классификациями и одной отсутствующей классификацией и укажите порядок групп.
Создайте векторы для известных и прогнозируемых групп.
g1 = [3 2 2 3 1 1]'; % Known groups g2 = [4 2 3 NaN 1 1]'; % Predicted groups
Укажите порядок групп и верните матрицу путаницы.
C = confusionmat(g1,g2,'Order',[4 3 2 1])C = 4×4
0 0 0 0
1 0 0 0
0 1 1 0
0 0 0 2
Индексы строк и столбцов матрицы путаницы C идентичны и расположены в порядке, указанном групповым порядком, то есть (4,3,2,1).
Вторая строка матрицы путаницы C показывает, что одна из точек данных, как известно, находится в группе 3, неправильно классифицирована в группе 4. Третий ряд C показывает, что одна из точек данных, принадлежащих группе 2, неправильно классифицирована в группу 3, а четвертая строка показывает, что две точки данных, известные как находящиеся в группе 1, классифицированы правильно. confusionmat обрабатывает NaN значение в переменной группировки g2 как отсутствующее значение и не включает его в строки и столбцы C.
Выполнить классификацию по образцу fisheriris набор данных и отображение матрицы путаницы для результирующей классификации.
Загрузите набор данных радужки Фишера.
load fisheririsРандомизировать измерения и группы в данных.
rng(0,'twister'); % For reproducibility numObs = length(species); p = randperm(numObs); meas = meas(p,:); species = species(p);
Обучение классификатора дискриминантного анализа с помощью измерений в первой половине данных.
half = floor(numObs/2); training = meas(1:half,:); trainingSpecies = species(1:half); Mdl = fitcdiscr(training,trainingSpecies);
Прогнозирование меток для измерений во второй половине данных с использованием обученного классификатора.
sample = meas(half+1:end,:); grouphat = predict(Mdl,sample);
Укажите порядок групп и просмотрите матрицу путаницы для результирующей классификации.
group = species(half+1:end); [C,order] = confusionmat(group,grouphat,'Order',{'setosa','versicolor','virginica'})
C = 3×3
29 0 0
0 22 2
0 0 22
order = 3x1 cell
{'setosa' }
{'versicolor'}
{'virginica' }
Матрица путаницы показывает, что измерения, принадлежащие setosa и virginica, классифицированы правильно, в то время как два измерения, принадлежащие versicolor, неправильно классифицированы как virginica. Продукция order содержит порядок строк и столбцов матрицы путаницы в последовательности, заданной порядком группы {'setosa','versicolor','virginica'}.
Выполните классификацию для массива с высоким уровнем fisheriris набор данных, вычислить матрицу путаницы для известных и прогнозируемых высоких меток с помощью confusionmat и постройте график матрицы путаницы с помощью confusionchart функция.
При выполнении вычислений в массивах TALL MATLAB ® использует либо параллельный пул (по умолчанию при наличии Toolbox™ Parallel Computing), либо локальный сеанс MATLAB. Если требуется выполнить пример с использованием локального сеанса MATLAB при наличии панели инструментов Parallel Computing Toolbox, можно изменить глобальную среду выполнения с помощью mapreducer функция.
Загрузите набор данных радужки Фишера.
load fisheririsПреобразование массивов в памяти meas и species в массивы с высоким уровнем.
tx = tall(meas);
Starting parallel pool (parpool) using the 'local' profile ... Connected to the parallel pool (number of workers: 6).
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 Parallel Pool 'local': - Pass 1 of 2: Completed in 3.9 sec - Pass 2 of 2: Completed in 1.5 sec Evaluation completed in 7.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.88 sec - Pass 2 of 4: Completed in 1.6 sec - Pass 3 of 4: Completed in 4 sec - Pass 4 of 4: Completed in 2.7 sec Evaluation completed in 11 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.54 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 3 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 7.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.51 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 3.1 sec - Pass 4 of 4: Completed in 2.5 sec Evaluation completed in 8.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.42 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 3 sec - Pass 4 of 4: Completed in 2.1 sec Evaluation completed in 7.6 sec
Прогнозирование меток для тестовых образцов с использованием обученной модели.
txTest = tx(~trIdx,:); label = predict(mdl,txTest);
Вычислите матрицу путаницы для результирующей классификации.
tyTest = ty(~trIdx); [C,order] = confusionmat(tyTest,label)
C =
M×N×... tall array
? ? ? ...
? ? ? ...
? ? ? ...
: : :
: : :
Preview deferred. Learn more.
order =
M×N×... tall array
? ? ? ...
? ? ? ...
? ? ? ...
: : :
: : :
Preview deferred. Learn more.
Используйте gather для выполнения отложенного расчета и возврата результата confusionmat в памяти.
gather(C)
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.9 sec Evaluation completed in 2.3 sec
ans = 3×3
20 0 0
1 30 2
0 0 22
gather(order)
Evaluating tall expression using the Parallel Pool 'local': Evaluation completed in 0.032 sec
ans = 3×1 cell
{'setosa' }
{'versicolor'}
{'virginica' }
Матрица путаницы показывает, что три измерения в классе versicolor неправильно классифицированы. Все измерения, относящиеся к setosa и virginica, классифицированы правильно.
Для вычисления и построения графика матрицы путаницы используйте confusionchart вместо этого.
cm = confusionchart(tyTest,label)
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.34 sec Evaluation completed in 0.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.48 sec Evaluation completed in 0.67 sec

cm =
ConfusionMatrixChart with properties:
NormalizedValues: [3×3 double]
ClassLabels: {3×1 cell}
Show all properties
group - Известные группыИзвестные группы для категоризации наблюдений, указанные как числовой вектор, логический вектор, символьный массив, строковый массив, массив ячеек символьных векторов или категориальный вектор.
group является переменной группирования того же типа, что и grouphat. group аргумент должен иметь то же количество замечаний, что и grouphat, как описано в разделе Группирование переменных. confusionmat функция обрабатывает массивы символов и строковые массивы как массивы ячеек векторов символов. Дополнительно, confusionmat удовольствия NaN, пусто, и 'undefined' значения в group как отсутствующие значения и не считает их как отдельные группы или категории.
Пример: {'Male','Female','Female','Male','Female'}
Типы данных: single | double | logical | char | string | cell | categorical
grouphat - Прогнозируемые группыПрогнозируемые группы для категоризации наблюдений, указанные как числовой вектор, логический вектор, символьный массив, строковый массив, массив ячеек символьных векторов или категориальный вектор.
grouphat является переменной группирования того же типа, что и group. grouphat аргумент должен иметь то же количество замечаний, что и group, как описано в разделе Группирование переменных. confusionmat функция обрабатывает массивы символов и строковые массивы как массивы ячеек векторов символов. Дополнительно, confusionmat удовольствия NaN, пусто, и 'undefined' значения в grouphat как отсутствующие значения и не считает их как отдельные группы или категории.
Пример: [1 0 0 1 0]
Типы данных: single | double | logical | char | string | cell | categorical
grouporder - Групповой заказПорядок групп, заданный как числовой вектор, логический вектор, символьный массив, строковый массив, массив ячеек символьных векторов или категориальный вектор.
grouporder является переменной группирования, содержащей все отдельные элементы в group и grouphat. Определить grouporder для определения порядка строк и столбцов C. Если grouporder содержит элементы, отсутствующие в group или grouphat, соответствующие записи в C являются 0.
По умолчанию порядок групп зависит от типа данных s = [group;grouphat]:
Для числовых и логических векторов порядком является отсортированный порядок s.
Для категориальных векторов порядком является порядок, возвращаемый .categories(s)
Для других типов данных порядок - это порядок первого появления в s.
Пример: 'order',{'setosa','versicolor','virginica'}
Типы данных: single | double | logical | char | string | cell | categorical
C - Матрица путаницыМатрица путаницы, возвращаемая как квадратная матрица с размером, равным общему количеству отдельных элементов в group и grouphat аргументы. C(i,j) является подсчетом наблюдений, которые, как известно, находятся в группе i но предсказано быть в группе j.
Строки и столбцы C имеют идентичный порядок индексов одной группы. По умолчанию порядок групп зависит от типа данных s = [group;grouphat]:
Для числовых и логических векторов порядком является отсортированный порядок s.
Для категориальных векторов порядком является порядок, возвращаемый .categories(s)
Для других типов данных порядок - это порядок первого появления в s.
Чтобы изменить порядок, укажите grouporder,
confusionmat функция обрабатывает NaN, пусто, и 'undefined' значения в переменных группировки как отсутствующие значения и не включают их в строки и столбцы C.
order - Порядок строк и столбцовПорядок строк и столбцов в C, возвращаемый как числовой вектор, логический вектор, категориальный вектор или клеточный массив символьных векторов. Если group и grouphat символьные массивы, строковые массивы или массивы ячеек символьных векторов, затем переменная order является массивом ячеек символьных векторов. В противном случае order имеет тот же тип, что и group и grouphat.
Использовать confusionchart для вычисления и построения графика матрицы путаницы. Дополнительно, confusionchart отображает сводную статистику данных и сортирует классы матрицы путаницы в соответствии с точностью по классу (положительное прогностическое значение), отзывом по классу (истинная положительная частота) или общим количеством правильно классифицированных наблюдений.
Эта функция полностью поддерживает массивы tall. Дополнительные сведения см. в разделе Массивы Tall.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.