Confusion Matrix in Machine Learning

Оновлено: 31.07.2023

Це узагальнення результатів прогнозування проблеми класифікації.

Кількість неточних і правильних прогнозів підсумовується і ділиться на класи за допомогою значень підрахунку. Це і є відповідь на загадку матриці плутанини.

Матриця плутанини відображає різні способи, якими класифікаційна модель збивається з пантелику при виконанні прогнозів.

  • Матриця плутанини надає багато інформації, але іноді ви можете віддати перевагу простішим метрикам, таким як пригадування або точність в машинному навчанні.
.

Цей розподіл долає обмеження, пов'язані з тим, що покладатися лише на точність класифікації.

Точність класифікації

Точність класифікації - це відношення точної класифікації до загальної кількості зроблених класифікацій. Його часто виражають у відсотках шляхом ділення результату на 100.

Точність класифікації також можна легко перетворити на частоту неправильної класифікації або частоту помилок шляхом інвертування значення, як показано на рисунку:

  • Коефіцієнт помилок = (1 - (правильних прогнозів/загальна кількість)) * 100

Хоча точність класифікації - це гарне місце для початку, на практиці вона часто стикається з проблемами. Яскравими прикладами цього є наступні:

  • Коли у ваших даних більше двох класів. З трьома або більше класами ви можете отримати 80-відсоткову точність класифікації, але ви не знаєте, чи це тому, що всі класи прогнозуються однаково добре, чи модель упускає один або два класи.
  • Коли кількість класів у ваших даних непарна. Ви можете отримати оцінку 95% або більше, однак, це не дуже хороший результат, якщо 95 з кожних 100 записів належать до одного класу, і ви можете отримати таку кількість, завжди прогнозуючи найпоширеніше значення класу.
.

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

Точність класифікації може приховати інформацію, необхідну для діагностики продуктивності вашої моделі. Однак ми можемо використати точність матриці плутанини, щоб відокремити цю деталь.

Матриця конфлікту в Python

Функція python для обчислення матриці плутанини нейронної мережі обчислює матрицю плутанини, використовуючи масив або список очікуваних значень і список прогнозів з вашої моделі машинного навчання, і повертає результат у вигляді масиву. Після цього ви можете роздрукувати цей масив і проаналізувати результати.

При виконанні цього прикладу виводиться матриця, яка підсумовує результати для надуманої задачі для 2 класів.

Розрахунок матриці конфузії

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

Метод обчислення матриці плутанини складається з декількох кроків:

  • Необхідний набір даних для валідації або тестовий набір даних, або зі значеннями очікуваних результатів.
  • Для кожного рядка в наборі даних зробіть прогноз.
  • Підрахунок очікуваних результатів і прогнозів:
  • Загальна кількість правильних прогнозів для кожного класу.
  • Неправильні прогнози для кожного класу впорядковані за передбаченим класом.
.

Потім ці числа структуруються в таблицю або матрицю.

Очікувані в майбутньому: Кожен рядок матриці відповідає прогнозованому класу.

Прогнози зверху: Кожен стовпчик матриці представляє реальний клас.

Потім правильні та неправильні класифікаційні підрахунки вносяться в таблицю.

Загальна кількість правильних прогнозів для класу заноситься до очікуваного рядка та передбаченого стовпчика для цього значення класу.

Аналогічно, сумарна кількість помилкових прогнозів для класу заноситься в очікуваний рядок і прогнозований стовпчик для цього значення класу.

Ця матриця корисна для задач з двома класами, оскільки вона проста для розуміння. Однак її можна розширити до складніших задач з більшою кількістю значень класів.

Важливість матриці плутанини в ML

Це метрика продуктивності для задач класифікації машинного навчання з двома або більше класами на виході.

Він чудово підходить для визначення показників пригадування, точності, специфічності, точності і, що найважливіше, кривої AUC-ROC.

Загальна точність моделі є подібною і високою при використанні як навчальних, так і тестових наборів даних. Навіть метрики на рівні класів є схожими та високими.

Можна зробити висновок, що модель SVC була належним чином відкалібрована і здатна робити точні прогнози на тестовому наборі даних як з точки зору загальної точності, так і точності на рівні класів.

По суті, матриця плутанини може допомогти моделям класифікації машинного навчання працювати краще і швидше.