Как я могу сделать большие матрицы путаницы легче для чтения?

9

Недавно я опубликовал набор данных ( ссылку ) с 369 классами. Я провел пару экспериментов на них, чтобы понять, насколько сложна задача классификации. Обычно мне нравится, если есть матрицы путаницы, чтобы увидеть тип совершаемой ошибки. Однако матрица не практична.369×369

Есть ли способ дать важную информацию больших матриц путаницы? Например, обычно есть много нулей, которые не так интересны. Можно ли отсортировать классы так, чтобы большинство ненулевых элементов располагалось по диагонали, чтобы можно было показывать несколько матриц, которые являются частью полной матрицы путаницы?

Вот пример для большой матрицы путаницы .

Примеры в дикой природе

Рисунок 6 из EMNIST выглядит красиво:

введите описание изображения здесь

Легко увидеть, где много случаев. Тем не менее, это только классов. Если бы вместо одного столбца использовалась целая страница, это, вероятно, могло бы быть в 3 раза больше, но это все равно было бы только 3 × 26 = 78 классов. Даже близко не 369 классов HASY или 1000 ImageNet.26326знак равно78

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

Мой похожий вопрос на CS.stackexchange

Мартин Тома
источник
Мне жаль ;-) Вы можете попробовать матрицы путаницы один против всех для каждого из классов. Учитывая их, посмотрите или классы, в которых поведение не является типичным и использовать полную матрицу путаницы только на них.
Дал
1
Почему бы просто не сообщить о точности модели для каждой категории. Кому действительно нужно увидеть всю матрицу?
Даррин Томас
1
@DarrinThomas Речь идет не только о том, чтобы сообщить об этом в газете. Это также касается анализа ошибок самостоятельно.
Мартин Тома
1
Во-первых, вы можете нормализовать значения по строкам, а затем построить график в виде тепловой карты. Кроме того, вы можете отсортировать класс по классовой точности (нормализованное значение по диагонали). Я полагаю, это значительно повысит читабельность.
Николас Рибл
1
Я должен, вероятно, спросить это снова в math.SE / stackoverflow. Я уверен, что есть алгоритмы, которые переупорядочивают строки / столбцы таким образом, что большая часть значения близка к диагонали.
Мартин Тома

Ответы:

4

Вы можете применить технику, которую я описал в магистерской диссертации (стр. 48 и далее) и которая называется Порядок матриц смешения (CMO):

  1. Упорядочивайте столбцы / строки таким образом, чтобы большинство ошибок проходило по диагонали.
  2. Разделите матрицу путаницы на несколько блоков так, чтобы отдельные блоки можно было легко распечатать / просмотреть - и чтобы можно было удалить некоторые из блоков, поскольку имеется мало точек данных.

Хороший побочный эффект: этот метод также автоматически группирует похожие классы вместе. Рисунок 5.12 моей магистерской диссертации показывает, что:

введите описание изображения здесь

Вы можете применить порядок матриц путаницы с clana

Мартин Тома
источник
См. Github.com/MartinThoma/clana для реализации
Мартин Тома
1

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

(я,J)яJ, Кроме того, вы можете иметь ~ 20 детализированных матриц смешения: для каждого кластера вы можете показать матрицу смешения классов, для ~ 20 классов в каждом кластере. Конечно, вы также можете расширить это с помощью иерархической кластеризации и иметь матрицы путаницы с несколькими гранулярностями.

Могут быть и другие возможные стратегии визуализации.

Как общий философский момент: это также может помочь прояснить ваши цели (что вы хотите получить из визуализации). Вы можете выделить два вида использования визуализации:

  • Исследовательский анализ: Вы не уверены, что ищете; вам просто нужна визуализация, которая может помочь вам найти интересные шаблоны или артефакты в данных.

  • Рисунки с сообщением: у вас есть конкретное сообщение, которое читатель должен забрать, и вы хотите разработать визуализацию, которая поможет поддержать это сообщение или предоставить подтверждение сообщения.

Это может помочь вам узнать, к чему вы стремитесь, а затем разработать визуализацию, нацеленную на это:

  • Если вы проводите предварительный анализ, а не пытаетесь выбрать одну идеальную визуализацию, часто бывает полезно создать столько визуализаций, сколько вы можете себе представить. Не беспокойтесь о том, совершенны ли они; Это нормально, если каждый из них имеет недостатки, поскольку каждый из них может дать вам потенциально разные точки зрения на данные (вероятно, это будет хорошо в некоторых отношениях и плохо в других).

  • Если у вас есть конкретное сообщение, которое вы пытаетесь передать, или тема, которую вы пытаетесь развить, ищите визуализацию, поддерживающую эту тему. Трудно сделать конкретное предложение, не зная, какой может быть эта тема / сообщение.

DW
источник
0

Важно знать, почему запутанная матрица EMNIST выглядит хорошо.

Но я нахожу странным, что они не сохранили окраску, причем более высокие числа являются самыми темными, например, большинство пустых классификаций ошибок, содержащих нули, имеют более темный серый цвет, чем те, которые содержат целое число. Не кажется последовательным.

Я бы попробовал использовать стиль EMINST, за исключением того, чтобы он был постоянным, когда цвет указывает на количество записей в ячейке. Белый для нуля, и черный для большинства записей.

Идеальной классификацией была бы черная диагональ с полностью белыми верхним и нижним треугольниками. Там, где были серые пятна в треугольниках, это указывало бы на проблемы. Даже на наборе 1000 классов это было бы полезно. Для ImageNet, где классы являются иерархическими, возможно, сортировка столбцов так, чтобы подклассы были сгруппированы справа от родительского класса, привела бы к темным пятнам.

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

rocklegend
источник