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% неверны.

Входные параметры

свернуть все

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

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

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

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

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

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

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

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

См. также

|

Введенный в R2008a