sortClasses

Сортировка классов матричного графика беспорядка

Синтаксис

Описание

пример

sortClasses(cm,order) сортирует классы матричного графика беспорядка cm в порядке, заданном order. Можно отсортировать классы в их естественном порядке значениями по диагонали матрицы беспорядка, или в фиксированном порядке, который вы задаете.

Примеры

свернуть все

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

Загрузите и смотрите arrhythmia набор данных.

load arrhythmia
isLabels = unique(Y);
nLabels = numel(isLabels)
nLabels = 13
tabulate(categorical(Y))
  Value    Count   Percent
      1      245     54.20%
      2       44      9.73%
      3       15      3.32%
      4       15      3.32%
      5       13      2.88%
      6       25      5.53%
      7        3      0.66%
      8        2      0.44%
      9        9      1.99%
     10       50     11.06%
     14        4      0.88%
     15        5      1.11%
     16       22      4.87%

Данные содержат 16 отличных меток, которые описывают различные степени аритмии, но ответ (Y) включает только 13 отличных меток.

Обучите дерево классификации и предскажите ответ перезамены дерева.

Mdl = fitctree(X,Y);
predictedY = resubPredict(Mdl);

Создайте матричный график беспорядка от истины, маркирует Y и предсказанные метки predictedY. Задайте 'RowSummary' как 'row-normalized' отобразить истинные положительные уровни и ложные положительные уровни в сводных данных строки. Кроме того, задайте 'ColumnSummary' как 'column-normalized' отобразить положительные прогнозирующие значения и ложные уровни открытия в сводных данных столбца.

fig = figure;
cm = confusionchart(Y,predictedY,'RowSummary','row-normalized','ColumnSummary','column-normalized');

Измените размер контейнера графика беспорядка, таким образом, проценты появляются в сводных данных строки.

fig_Position = fig.Position;
fig_Position(3) = fig_Position(3)*1.5;
fig.Position = fig_Position;

Figure contains an object of type ConfusionMatrixChart.

Чтобы отсортировать матрицу беспорядка согласно истинному положительному уровню, нормируйте значения ячеек через каждую строку путем установки Normalization свойство к 'row-normalized' и затем используйте sortClasses. После сортировки, сброс Normalization свойство назад к 'absolute' отобразить общее количество наблюдений в каждой ячейке.

cm.Normalization = 'row-normalized'; 
sortClasses(cm,'descending-diagonal')
cm.Normalization = 'absolute'; 

Figure contains an object of type ConfusionMatrixChart.

Чтобы отсортировать матрицу беспорядка согласно положительному прогнозирующему значению, нормируйте значения ячеек через каждый столбец путем установки Normalization свойство к 'column-normalized' и затем используйте sortClasses. После сортировки, сброс Normalization свойство назад к 'absolute' отобразить общее количество наблюдений в каждой ячейке.

cm.Normalization = 'column-normalized';
sortClasses(cm,'descending-diagonal')
cm.Normalization = 'absolute';  

Figure contains an object of type ConfusionMatrixChart.

Создайте матричный график беспорядка при помощи confusionchart функция и вид классы, чтобы кластеризировать подобные классы при помощи 'cluster' опция sortClasses функция. Этот пример также показывает, как кластеризироваться при помощи pdist, linkage, и optimalleaforder функции.

Сгенерируйте набор выборочных данных, который содержит восемь отличных классов.

rng('default') % For reproducibility 
trueLabels = randi(8,1000,1);
predictedLabels = trueLabels;

Вставьте беспорядок среди классов {1,4,7}, {2,8}, и {5,6} для первых 200 выборок.

rename = [4 8 3 7 6 5 1 2];
predictedLabels(1:100) = rename(predictedLabels(1:100));
rename = [7 8 3 1 6 5 4 2];
predictedLabels(101:200) = rename(predictedLabels(101:200));

Создайте матричный график беспорядка от истины, маркирует trueLabels и предсказанные метки predictedLabels.

figure
cm1 = confusionchart(trueLabels,predictedLabels);

Figure contains an object of type ConfusionMatrixChart.

Кластер Используя 'cluster'

Сортировка классов, чтобы кластеризировать подобные классы при помощи 'cluster' опция.

sortClasses(cm1,'cluster')

Figure contains an object of type ConfusionMatrixChart.

Кластер Используя pdist, linkage, и optimalleaforder

Вместо того, чтобы использовать 'cluster' опция, можно использовать pdist, linkage, и optimalleaforder функции к кластерным матричным значениям беспорядка. Можно настроить кластеризацию при помощи опций этих функций. Для получения дополнительной информации смотрите соответствующие страницы ссылки на функцию.

Предположим, что у вас есть матрица беспорядка и метки класса.

m = confusionmat(trueLabels,predictedLabels);
labels = [1 2 3 4 5 6 7 8];

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

D = pdist(m);
idx = optimalleaforder(linkage(D),D);
clusteredM = m(idx,idx);
clusteredLabels = labels(idx);

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

cm2 = confusionchart(clusteredM,clusteredLabels);
sortClasses(cm2,clusteredLabels)

Figure contains an object of type ConfusionMatrixChart.

Отсортированная матрица беспорядка строит диаграмму cm2, который вы создали при помощи pdist, linkage, и optimalleaforder, идентично отсортированному матричному графику беспорядка cm1, который вы создали при помощи 'cluster' опция.

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

Загрузите ирисовый набор данных Фишера.

load fisheriris
X = meas([51:150,1:50],:);
Y = species([51:150,1:50],:);

X числовая матрица, которая содержит четыре лепестковых измерения для 150 ирисовых диафрагм. Y массив ячеек из символьных векторов, который содержит соответствующие ирисовые разновидности.

Обучите классификатор k - ближайших соседей (KNN), где количество самых близких соседей в предикторах (k) равняется 5. Хорошая практика должна стандартизировать числовые данные о предикторе.

Mdl = fitcknn(X,Y,'NumNeighbors',5,'Standardize',1);

Предскажите метки обучающих данных.

predictedY = resubPredict(Mdl);

Создайте матричный график беспорядка от истины, маркирует Y и предсказанные метки predictedY.

cm = confusionchart(Y,predictedY);

Figure contains an object of type ConfusionMatrixChart.

По умолчанию, confusionchart сортирует классы в их естественный порядок, как задано sort. В этом примере метки класса являются векторами символов, таким образом, confusionchart сортирует классы в алфавитном порядке. Переупорядочьте классы матричного графика беспорядка в фиксированном порядке.

sortClasses(cm,["versicolor","setosa","virginica"])

Figure contains an object of type ConfusionMatrixChart.

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

свернуть все

Матричный график беспорядка в виде ConfusionMatrixChart объект. Чтобы создать матричный график беспорядка, использовать confusionchart,

Закажите, в котором можно отсортировать классы матричного графика беспорядка в виде одного из этих значений:

  • 'auto' — Сортировки классов в их естественный порядок, как задано sort функция. Например, если метки класса матричного графика беспорядка являются вектором строки, то вид в алфавитном порядке. Если метки класса являются порядковым категориальным вектором, то используйте порядок меток класса.

  • 'ascending-diagonal' — Сортировка классов так, чтобы значения по диагонали матричного увеличения беспорядка от левого верхнего до правого нижнего.

  • 'descending-diagonal' — Сортировка классов так, чтобы значения по диагонали матричного уменьшения беспорядка от левого верхнего до правого нижнего.

  • 'cluster' — Сортировка классов, чтобы кластеризировать подобные классы. Можно настроить кластеризацию при помощи pdist, linkage, и optimalleaforder функции. Для получения дополнительной информации смотрите сортировку Классов к Кластерным Подобным Классам.

  • Массив — сортировка классов в уникальном порядке, заданном категориальным вектором, числовым вектором, представляет в виде строки вектор, символьный массив, массив ячеек из символьных векторов или логический вектор. Массив должен быть сочетанием ClassLabels свойство матричного графика беспорядка.

Пример: sortClasses(cm,'ascending-diagonal')

Пример: sortClasses(cm,["owl","cat","toad"])

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

Функции

Свойства

Введенный в R2018b