Як можна полегшити читання великих матриць плутанини?


9

Нещодавно я опублікував набір даних ( посилання ) з 369 класами. Я провела над ними пару експериментів, щоб зрозуміти, наскільки складно завдання класифікації. Зазвичай мені подобається, якщо є матриці плутанини, щоб побачити тип помилки. Однак матриця не є практичною.369×369

Чи є спосіб дати важливу інформацію про великі матриці плутанини? Наприклад, зазвичай є багато 0, які не такі цікаві. Чи можна сортувати класи так, що більшість ненульових записів розташовані навколо діагоналі, щоб дозволити показ декількох матриць, які є частиною повної матриці плутанини?

Ось приклад для великої матриці плутанини .

Приклади в дикій природі

Малюнок 6 EMNIST виглядає добре:

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

Неважко помітити, де багато справ. Однак це лише класів. Якби вся сторінка була використана замість одного стовпця, це, ймовірно, може бути в 3 рази більше, але це все одно буде лише класів. Навіть близько 369 класів HASY або 1000 ImageNet.26326=78

Дивись також

Моє схоже запитання на CS.stackexchange


Мені шкода ;-) Ви можете спробувати матриці плутанини один проти всіх для кожного з класів. Враховуючи їх, подивіться або класи, в яких поведінка не є типовою, і використовуйте повну матрицю плутанини лише на них.
DaL

1
Чому б не просто повідомити про точність моделі для кожної категорії. Кому насправді потрібно бачити всю матрицю?
Даррін Томас

1
@DarrinThomas Йдеться не лише про те, щоб повідомити про це у статті. Йдеться також про аналіз самих помилок.
Мартін Тома

1
По-перше, ви можете нормалізувати цінні рядки, а потім побудувати їх як теплову карту. Крім того, ви можете сортувати клас за точністю по класу (нормоване значення по діагоналі). Я припускаю, що це значно збільшить читабельність.
Nikolas Rieble

1
Я, мабуть, повинен запитати це знову в math.SE / stackoverflow. Я впевнений, що існують алгоритми, які переупорядковують рядки / стовпці таким чином, що більшість значень наближаються до діагоналі.
Мартін Тома

Відповіді:


4

Ви можете застосувати техніку, яку я описав у моїй магістерській роботі (стор. 48ff) і назвав упорядкування матриці плутанини (CMO):

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

Хороший побічний ефект: Цей метод також автоматично кластеризує подібні класи разом. На рисунку 5.12 моєї дипломної роботи видно, що:

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

Ви можете застосувати замовлення матриці плутанини за допомогою clana


Дивіться про реалізацію github.com/MartinThoma/clana
Мартін Тома

1

Замість того, щоб намагатися переупорядкувати стовпці та рядки, я б запропонував спробувати знайти інший спосіб візуалізації даних.

Ось одна з можливих альтернативних пропозицій. Ви можете класифікувати класи, наприклад, в ~ 20 кластерів, де кожен кластер містить ~ 20 класів у ньому, використовуючи якийсь алгоритм кластеризації, який об'єднує подібні класи в один кластер (наприклад, якщо два класи часто плутають один з одним, вони повинні частіше знаходитися в одному кластері). Потім ви можете показати грубозернисту матрицю плутанини з одним рядком / стовпцем на кластер; комірка в показує, як часто екземпляр якогось класу в кластері передбачається мати клас кластера(i,j)ij. Крім того, ви можете мати ~ 20 дрібнозернистих матриць плутанини: для кожного кластера ви можете показати матрицю плутанини класів, для ~ 20 класів у кожному кластері. Звичайно, ви також можете розширити це за допомогою ієрархічної кластеризації та мати матриці плутанини у кількох деталях.

Можуть бути й інші можливі стратегії візуалізації.

Як загальнофілософський пункт: це також може допомогти уточнити свої цілі (що ви хочете вийти з візуалізації). Можна виділити два види використання візуалізації:

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

  • Цифри з повідомленням: у вас є певне повідомлення, яке ви хочете, щоб читач забрав, і ви хочете розробити візуалізацію, яка допомагає підтримувати це повідомлення або надавати докази для повідомлення.

Це може допомогти вам зрозуміти, на що ви прагнете націлитись, а потім розробити візуалізацію, спрямовану на це:

  • Якщо ви робите дослідницький аналіз, а не намагаєтеся вибрати одну ідеальну візуалізацію, часто корисно спробувати створити стільки візуалізацій, скільки ви можете придумати. Не хвилюйтеся, чи будь-який із них ідеальний; це нормально, якщо кожен з них є вадами, оскільки кожен може дати вам потенційно різний погляд на дані (певно, в деяких відношеннях це буде добре, а в інших - погано).

  • Якщо у вас є певне повідомлення, яке ви намагаєтеся передати, або тема, яку ви намагаєтеся розробити, знайдіть візуалізацію, яка підтримує цю тему. Важко зробити конкретну пропозицію, не знаючи, якою може бути ця тема / повідомлення.


0

Важливо знати, чому матриця плутання EMNIST виглядає добре.

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

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

Ідеальною класифікацією була б чорна діагональ із повністю білими верхніми та нижніми трикутниками. Там, де в трикутниках були якісь сірі плями, це вказувало б на проблеми. Навіть на наборі 1000 класів це було б корисно. Для ImageNet, де класи є ієрархічними, можливо, сортування стовпців так, щоб підкласи згруповані праворуч від батьківського класу, призведе до квадратних темних патчів.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.