plotconfusion

Постройте матрицу беспорядка классификации

Описание

пример

plotconfusion(targets,outputs) графики матрица беспорядка для истины маркируют targets и предсказанные метки outputs. Задайте метки как категориальные векторы, или в one-of-N (одногорячая) форма.

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

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

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

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

Примеры

свернуть все

Загрузите данные, состоящие из синтетических изображений рукописных цифр. XTrain 28 28 1 5 000 массивов изображений и 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)

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

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

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

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)

В этом рисунке первые две диагональных ячейки показывают номер и процент правильных классификаций обучившим сеть. Например, 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-by-M матрица, где N является количеством классов и M, является количеством наблюдений. Каждый столбец матрицы должен быть в one-of-N (одногорячей) формой, где один элемент, равный 1, указывает на истинную метку, и все другие элементы равняются 0.

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

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

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

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

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

Смотрите также

|

Введенный в R2008a