exponenta event banner

plotconfusion

Матрица путаницы классификации участков

Описание

пример

plotconfusion(targets,outputs) выводит на график матрицу путаницы для истинных меток targets и прогнозируемые метки outputs. Укажите метки в виде категориальных векторов или в виде «один из N» («один горячий»).

Совет

plotconfusion не рекомендуется для категориальных этикеток. Использовать confusionchart вместо этого.

На графике матрицы путаницы строки соответствуют прогнозируемому классу (Output Class), а столбцы соответствуют истинному классу (Target Class). Диагональные ячейки соответствуют наблюдениям, которые правильно классифицированы. Внедиагональные клетки соответствуют неправильно классифицированным наблюдениям. В каждой ячейке показано как количество наблюдений, так и процент от общего количества наблюдений.

В столбце справа от графика показаны проценты всех предсказанных примеров, принадлежащих каждому классу, которые правильно и неправильно классифицированы. Эти метрики часто называют точностью (или положительной прогностической величиной) и частотой ложного обнаружения соответственно. Строка внизу графика показывает проценты всех примеров, принадлежащих каждому классу, которые правильно и неправильно классифицированы. Эти метрики часто называются частотой отзыва (или истинной положительной скоростью) и ложноотрицательной скоростью соответственно. Ячейка в правом нижнем углу графика показывает общую точность.

plotconfusion(targets,outputs,name) строит график матрицы путаницы и добавляет name к началу названия участка.

plotconfusion(targets1,outputs1,name1,targets2,outputs2,name2,...,targetsn,outputsn,namen) выводит на график несколько матриц путаницы на одном рисунке и добавляет name аргументы в начало названий соответствующих сюжетов.

Примеры

свернуть все

Загрузите данные, состоящие из синтетических изображений рукописных цифр. XTrain множество изображений 28 на 28 на 1 на 5000 и YTrain - категориальный вектор, содержащий метки изображения.

[XTrain,YTrain] = digitTrain4DArrayData;  
whos YTrain
  Name           Size            Bytes  Class          Attributes

  YTrain      5000x1              6062  categorical              

Определите архитектуру сверточной нейронной сети.

layers = [
    imageInputLayer([28 28 1])
    
    convolution2dLayer(3,8,'Padding','same')
    batchNormalizationLayer
    reluLayer    
    convolution2dLayer(3,16,'Padding','same','Stride',2)
    batchNormalizationLayer
    reluLayer
    convolution2dLayer(3,32,'Padding','same','Stride',2)
    batchNormalizationLayer
    reluLayer
    
    fullyConnectedLayer(10)
    softmaxLayer
    classificationLayer];

Укажите параметры обучения и обучите сеть.

options = trainingOptions('sgdm', ...
    'MaxEpochs',5, ...
    'Verbose',false, ...
    'Plots','training-progress');
net = trainNetwork(XTrain,YTrain,layers,options);

Загрузка и классификация тестовых данных с использованием обученной сети.

[XTest,YTest] = digitTest4DArrayData;
YPredicted = classify(net,XTest);

Постройте график матрицы путаницы меток истинного теста YTest и прогнозируемые метки YPredicted.

plotconfusion(YTest,YPredicted)

Строки соответствуют прогнозируемому классу (Output Class), а столбцы соответствуют истинному классу (Target Class). Диагональные ячейки соответствуют наблюдениям, которые правильно классифицированы. Внедиагональные клетки соответствуют неправильно классифицированным наблюдениям. В каждой ячейке показано как количество наблюдений, так и процент от общего количества наблюдений.

В столбце справа от графика показаны проценты всех предсказанных примеров, принадлежащих каждому классу, которые правильно и неправильно классифицированы. Эти метрики часто называют точностью (или положительной прогностической величиной) и частотой ложного обнаружения соответственно. Строка внизу графика показывает проценты всех примеров, принадлежащих каждому классу, которые правильно и неправильно классифицированы. Эти метрики часто называются частотой отзыва (или истинной положительной скоростью) и ложноотрицательной скоростью соответственно. Ячейка в правом нижнем углу графика показывает общую точность.

Закройте все фигуры.

close(findall(groot,'Type','figure'))

Загрузка данных образца с помощью cancer_dataset функция. XTrain является матрицей 9 на 699, определяющей девять атрибутов 699 биопсий. YTrain является матрицей 2 на 699, где каждый столбец указывает правильную категорию соответствующего наблюдения. Каждый столбец YTrain имеет один элемент, который равен одному в первом или втором ряду, соответствующий раку, который является доброкачественным или злокачественным, соответственно. Для получения дополнительных сведений об этом наборе данных введите help cancer_dataset в командной строке.

rng default
[XTrain,YTrain] = cancer_dataset;
YTrain(:,1:10)
ans = 2×10

     1     1     1     0     1     1     0     0     0     1
     0     0     0     1     0     0     1     1     1     0

Создайте сеть распознавания образов и обучайте ее, используя образцы данных.

net = patternnet(10);
net = train(net,XTrain,YTrain);

Оцените состояние рака, используя обученную сеть. Каждый столбец матрицы YPredicted содержит предсказанные вероятности каждого наблюдения, относящегося к классу 1 и классу 2 соответственно.

YPredicted = net(XTrain);
YPredicted(:,1:10)
ans = 2×10

    0.9980    0.9979    0.9894    0.0578    0.9614    0.9960    0.0026    0.0023    0.0084    0.9944
    0.0020    0.0021    0.0106    0.9422    0.0386    0.0040    0.9974    0.9977    0.9916    0.0056

Постройте график матрицы путаницы. Чтобы создать график, plotconfusion маркирует каждое наблюдение согласно наивысшей вероятности класса.

plotconfusion(YTrain,YPredicted)

Figure Confusion (plotconfusion) contains an axes. The axes with title Confusion Matrix contains 29 objects of type patch, text, line.

На этом рисунке первые две диагональные ячейки показывают количество и процент правильных классификаций обученной сетью. Например, 446 биопсий правильно классифицируются как доброкачественные. Это соответствует 63,8% всех 699 биопсий. Аналогичным образом 236 случаев правильно классифицируются как злокачественные. Это соответствует 33,8% всех биопсий.

5 злокачественных биопсий неправильно классифицируются как доброкачественные, и это соответствует 0,7% всех 699 биопсий в данных. Точно так же 12 доброкачественных биопсий неправильно классифицируются как злокачественные, и это соответствует 1,7% всех данных.

Из 451 доброкачественного прогноза 98,9% верны, а 1,1% ошибаются. Из 248 злокачественных прогнозов 95,2% верны, а 4,8% ошибаются. Из 458 доброкачественных случаев 97,4% правильно прогнозируются как доброкачественные, а 2,6% - как злокачественные. Из 241 злокачественного случая 97,9% правильно классифицируются как злокачественные, а 2,1% - как доброкачественные.

В целом, 97,6% прогнозов верны, а 2,4% неверны.

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

свернуть все

Метки истинного класса, указано одно из следующих значений:

  • Категориальный вектор, где каждый элемент является меткой класса одного наблюдения. outputs и targets аргументы должны иметь одинаковое количество элементов. Если категориальные векторы определяют базовые классы, то plotconfusion отображает все нижележащие классы, даже если отсутствуют наблюдения за некоторыми нижележащими классами. Если аргументы являются порядковыми категориальными векторами, то они оба должны определять одни и те же базовые категории в одном и том же порядке.

  • Матрица N-на-М, где N - число классов, а M - число наблюдений. Каждый столбец матрицы должен быть в форме «один из-N» («один горячий»), где один элемент, равный 1, указывает истинную метку, а все остальные элементы равны 0.

Прогнозируемые метки класса, указано одно из следующих значений:

  • Категориальный вектор, где каждый элемент является меткой класса одного наблюдения. outputs и targets аргументы должны иметь одинаковое количество элементов. Если категориальные векторы определяют базовые классы, то plotconfusion отображает все нижележащие классы, даже если отсутствуют наблюдения за некоторыми нижележащими классами. Если аргументы являются порядковыми категориальными векторами, то они оба должны определять одни и те же базовые категории в одном и том же порядке.

  • Матрица N-на-М, где N - число классов, а M - число наблюдений. Каждый столбец матрицы может быть в форме «один из-N» («один горячий»), где один элемент, равный 1, указывает на предсказанную метку, или в форме вероятностей, которые суммируются с единицей.

Имя матрицы путаницы, указанное как символьный массив. plotconfusion добавляет указанное name к началу названия участка.

Типы данных: char

См. также

|

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