Вычислите матрицу беспорядка для проблемы классификации
использование C
= confusionmat(group
,grouphat
,'Order'
,grouporder
)grouporder
заказать строки и столбцы C
.
Отобразите матрицу беспорядка для данных с двумя misclassifications и одной недостающей классификацией.
Создайте векторы для известных групп и предсказанных групп.
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
Отобразите матрицу беспорядка для данных с двумя misclassifications и одной недостающей классификацией, и задайте порядок группы.
Создайте векторы для известных групп и предсказанных групп.
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 array
{'setosa' }
{'versicolor'}
{'virginica' }
Матрица беспорядка показывает, что измерения, принадлежащие setosa и virginica, классифицируются правильно, в то время как два из измерений, принадлежащих versicolor, неправильно классифицируются как virginica. Выход order
содержит порядок строк и столбцов матрицы беспорядка в последовательности, заданной группой order {'setosa','versicolor','virginica'}
.
Выполните классификацию на длинном массиве fisheriris
набор данных, вычислите матрицу беспорядка для известного, и предсказал высокие метки при помощи confusionmat
функция и график матрица беспорядка при помощи confusionchart
функция.
Когда вы выполняете вычисления на длинных массивах, MATLAB® использует любого параллельный пул (значение по умолчанию, если у вас есть Parallel Computing Toolbox™), или локальный сеанс работы с 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: 12).
ty = tall(species);
Найдите количество наблюдений в длинном массиве.
numObs = gather(length(ty)); % gather collects tall array into memory
Evaluating tall expression using the Parallel Pool 'local': Evaluation completed in 0.43 sec
Установите seed генераторов случайных чисел с помощью rng
и tallrng
для воспроизводимости и случайным образом избранных учебных выборок. Результаты могут варьироваться в зависимости от количества рабочих и среды выполнения для длинных массивов. Для получения дополнительной информации смотрите Управление Где Ваши Запуски Кода (MATLAB).
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 2.8 sec - Pass 2 of 2: Completed in 2.5 sec Evaluation completed in 8.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.7 sec - Pass 2 of 4: Completed in 2.5 sec - Pass 3 of 4: Completed in 6.7 sec - Pass 4 of 4: Completed in 5.9 sec Evaluation completed in 20 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.98 sec - Pass 2 of 4: Completed in 2.7 sec - Pass 3 of 4: Completed in 7 sec - Pass 4 of 4: Completed in 4 sec Evaluation completed in 17 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.8 sec - Pass 2 of 4: Completed in 2 sec - Pass 3 of 4: Completed in 4.8 sec - Pass 4 of 4: Completed in 3.8 sec Evaluation completed in 14 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.76 sec - Pass 2 of 4: Completed in 1.6 sec - Pass 3 of 4: Completed in 5.6 sec - Pass 4 of 4: Completed in 4.6 sec Evaluation completed in 15 sec
Предскажите метки для тестовых выборок при помощи обученной модели.
txTest = tx(~trIdx,:); label = predict(mdl,txTest);
Вычислите матрицу беспорядка для получившейся классификации.
tyTest = ty(~trIdx); [C,order] = confusionmat(tyTest,label)
C = MxNx... tall array ? ? ? ... ? ? ? ... ? ? ? ... : : : : : : order = MxNx... tall array ? ? ? ... ? ? ? ... ? ? ? ... : : : : : :
Используйте gather
функция, чтобы выполнить задержанное вычисление и возвратить результат confusionmat
в памяти.
gather(C)
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 2.3 sec Evaluation completed in 3.4 sec
ans = 3×3
25 0 0
1 24 3
0 0 22
gather(order)
Evaluating tall expression using the Parallel Pool 'local': Evaluation completed in 0.048 sec
ans = 3x1 cell array
{'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.76 sec Evaluation completed in 1.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.95 sec Evaluation completed in 1.9 sec
cm = ConfusionMatrixChart with properties: NormalizedValues: [3x3 double] ClassLabels: {3x1 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
статистика сводных данных отображений о ваших данных и видах классы матрицы беспорядка согласно мудрой классом точности (положительное прогнозирующее значение), мудрый классом отзыв (истинный положительный уровень), или общее количество правильно классифицированных наблюдений.
Эта функция полностью поддерживает "высокие" массивы. Для получения дополнительной информации смотрите Длинные массивы (MATLAB).
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.