Матрица на объркването в машинното обучение с ПРИМЕР

⚡ Умно обобщение

Матрицата на объркването е таблица за измерване на производителността на класификационни модели, която сравнява прогнозираните етикети с известни действителни етикети, разкривайки точно кои класове класификаторът определя правилно и кои греши.

  • 🔘 Четири резултата: Истински положителни, истински отрицателни, фалшиво положителни и фалшиво отрицателни запълват всяка клетка на двоична матрица.
  • ☑️ Видове грешки: Фалшиво положителният резултат е грешка от тип I, докато фалшиво отрицателният резултат е грешка от тип II.
  • Производни показатели: Точност, прецизност, припомняне, специфичност и F1 резултат произтичат от едни и същи четири показателя.
  • 🧪 Отвъд точността: При небалансирани данни точността е по-добра за модела, докато матрицата показва в кой клас той всъщност не попада.
  • 🛠️ Изглед с множество класове: N класа създават мрежа от N×N, където диагоналът съдържа всяка правилна прогноза.
  • Python маршрут: scikit-learn изгражда същата таблица на два реда с confusion_matrix() и classification_report().

Матрица на объркването в машинното обучение с пример

Какво представлява матрицата на объркването?

A матрица на объркване е техника за измерване на производителността за машинно обучение класификация. Това е таблица, която показва как се е представил класификационен модел върху набор от тестови данни, за които истинските стойности вече са известни. Терминът „матрица на объркване“ е достатъчно прост, но терминологията, изградена върху него, може да бъде объркваща, така че всяка част е обяснена по-долу на разбираем език.

Матрицата се отнася за всеки контролиран класификатор — логистична регресия, дърво на решенията, Наивен модел на Бейс или дълбока невронна мрежа — защото сравнява само две колони с етикети: какво е предсказал моделът и какво всъщност е било вярно.

Четири резултата от матрицата на объркването

Матрицата на объркването визуализира точността на класификатора чрез сравняване на действителните и прогнозираните класове. Двоичната матрица на объркване е съставена от квадрати:

Таблица на бинарното объркване, показваща квадрантите TP, FP, FN и TN
Таблица на объркването

Таблицата по-горе изобразява четирите квадрата, които всяка двоична матрица на объркване съдържа:

  • TP: Истински положителен: Прогнозираните стойности са правилно прогнозирани като действителни положителни
  • FP: Фалшиво положителен: Прогнозираните стойности са неправилно прогнозирани като действително положителни, т.е. отрицателните стойности са прогнозирани като положителни
  • FN: Фалшиво отрицателен: Положителните стойности се прогнозират като отрицателни
  • TN: Истински отрицателен: Прогнозираните стойности са правилно прогнозирани като действително отрицателни

Статистиката дава на двете клетки за грешки собствени имена. Фалшиво положителен резултат е Грешка тип I — моделът е задействал тревога, която никога не е трябвало да се задейства. Фалшиво отрицателният резултат е Грешка тип II — моделът замълча, когато е трябвало да вдигне тревога. Знанието кой от двата е по-скъп за вашия проблем определя кой показател ще настроите по-късно.

Можете да изчислите теста за точност от матрицата на объркване, както е показано във формулата по-долу:

Формула за точност, получена от четирите резултата на матрицата на объркването

Пример за матрица на объркването

Матрицата на объркването е полезен метод за машинно обучение, който ви позволява да измервате Remilla (повтаряемост), Precision (прецизност), Accuracy (точност) и AUC-ROC кривата. Примерът с футболния мач по-долу показва какво означават термините True Positive (истински положителен), True Negative (истински отрицателен), False Positive (фалшиво положителен) и False Negative (фалшиво отрицателен) в ежедневния език.

Истинско положително:

Прогнозата ви беше положителна и тя се оказа вярна. Например, бяхте предвидили, че Франция ще спечели световното първенство и тя спечели.

Истински отрицателен:

Вие прогнозирахте отрицателен резултат и това също е вярно. Вие бяхте предвидили, че Англия няма да спечели, а тя загуби.

Фалшив положителен:

Прогнозата ви е положителна и е невярна.

Бяхте предвидили, че Англия ще спечели, но тя загуби.

Фалшив отрицателен:

Прогнозата ви е отрицателна и резултатът я прави невярна.

Бяхте прогнозирали, че Франция няма да спечели, но тя спечели.

Трябва да запомните, че първата дума описва дали прогнозата е била правилна или грешна („Вярно“ или „Невярно“), а втората дума описва какво е предсказал моделът („Положително“ или „Отрицателно“).

Как да изчислим матрица на объркване

Ето стъпка по стъпка процеса за изчисляване на матрица на объркване в извличане на данни:

  • Стъпка 1) Първо, ви е необходим тестов набор от данни заедно с очакваните стойности на резултатите.
  • Стъпка 2) Предвидете всички редове в тестовия набор от данни.
  • Стъпка 3) Сравнете очакваните резултати с прогнозите и пребройте:
    1. Общият брой правилни прогнози за всеки клас.
    2. Общият брой неправилни прогнози за всеки клас.

След това тези числа са организирани по дадените по-долу методи:

  • Всеки ред от матрицата съответства на действителен клас.
  • Всяка колона от матрицата е свързана с предвиден клас.
  • Общият брой правилни и неправилни класификации се въвеждат в таблицата.
  • Сумата от правилните прогнози за даден клас отива в клетката, където действителният ред на този клас среща собствената му прогнозирана колона - диагонала.
  • Сумата от неправилните прогнози за даден клас отива в действителния ред за стойността на този клас и в прогнозираната колона на избрания от модела клас.

Ролите на редовете и колоните са по-скоро конвенция, отколкото закон, и някои инструменти за чертане транспонират оформлението, така че винаги четете етикетите на осите, преди да интерпретирате матрица. Ориентацията, използвана тук – действителна за редовете, прогнозирана за колоните – е тази, която scikit-learn произвежда.

Други важни термини, използващи матрица на объркване

След като четирите броя са налице, семейство от вторични термини описва различни части от една и съща таблица:

  • Положителна предсказваща стойност (PPV): Това е много близко до прецизност. Една съществена разлика между двата термина е, че PPV отчита разпространението. В ситуация, в която класовете са перфектно балансирани, положителната предсказваща стойност е същата като прецизността.
  • Нулев процент грешки: Този термин определя колко често прогнозата ви би била грешна, ако винаги прогнозирате класа на мнозинството. Можете да го третирате като базова метрика, с която да сравнявате класификатора си.
  • F резултат: F1 резултатът е среднопретеглена оценка на истинския процент на положителни резултати (повторно припомняне) и прецизност.
  • ROC крива: ROC кривата изобразява процента на истински положителни резултати спрямо процента на фалшиво положителни резултати при различни гранични точки. Тя също така демонстрира компромис между чувствителност (повторимост) и специфичност, което е процентът на истински отрицателни резултати.
  • Прецизност: Метриката за прецизност показва точността на положителния клас. Той измерва колко вероятно прогнозата за положителния клас е правилна.

Формула за прецизност: истински положителни резултати, разделени на истински положителни резултати плюс фалшиво положителни резултати

Максималният резултат е 1, когато класификаторът класифицира перфектно всички положителни стойности. Само по себе си прецизността не е много полезна, защото игнорира отрицателния клас. Метриката обикновено се сдвоява с метриката за отзоваемост. Отзоваемостта се нарича още чувствителност или истински процент на положителност и се записва, както е показано по-долу.

  • Чувствителност: Чувствителността изчислява съотношението на правилно откритите положителни класове. Този показател показва колко добър е моделът в разпознаването на положителен клас.

Формула за чувствителност: истински положителни резултати, разделени на истински положителни резултати плюс фалшиво отрицателни резултати

Метрики и формули на матрицата на объркването

Всеки показател по-горе е аритметичен по едни и същи четири показателя, така че е полезно да ги разглеждате редом с въпроса, на който отговаря всеки от тях.

метричен Формула Въпрос, на който отговаря Използвайте го, когато
Точност (TP + TN) / (TP + TN + FP + FN) Колко прогнози бяха верни общо? Класовете са приблизително балансирани
Прецизност ТП / (ТП + ФП) Когато моделът казва положително, колко често е правилно? Фалшивите аларми са скъпи
Извикване (чувствителност) TP / (TP + FN) От всички истински позитиви, колко бяха хванати? Пропуснатите позитиви са скъпи
специфичност TN / (TN + FP) От всички реални негативи, колко от тях бяха отстранени? Отрицателният клас също има значение
F1 резултат 2 × (Прецизност × Отзоваване) / (Прецизност + Отзоваване) Какъв е балансът между двете? Нужен ви е един номер и за двете

Вземете спам филтър, тестван върху 100 имейла, който дава TP = 45, FN = 5, FP = 10 и TN = 40. Точността е (45 + 40) / 100 = 0.85. Прецизността е 45 / (45 + 10) = 0.82, извикаемостта е 45 / (45 + 5) = 0.90, а специфичността е 40 / (40 + 10) = 0.80. Резултатът от F1 е 0.86.

Тези числа разказват история, която крие една-единствена цифра за точност: филтърът улавя 90 процента от истинския спам, но погрешно поставя под карантина един легитимен имейл от всеки пет маркирани. Дали тази размяна е приемлива зависи от цената на всяка грешка, което е точно причината, поради която се отчита матрицата, а не само точността.

Матрица на объркване за многокласова класификация

Проблемите с класификацията рядко спират до два етикета, а матрицата се мащабира, без да променя формата си. За N класа таблицата се превръща в мрежа N×N: диагоналът съдържа всяка правилна прогноза, а всяка клетка извън диагонала записва точно кой клас е бил объркан с кой друг клас.

Трикласов модел, който сортира изображения в котка, куче и заек, създава мрежа 3×3. Ако клетката в ред „котка“ и колона „куче“ съдържа 12, тогава дванадесет изображения на котка са обозначени като куче. Това ниво на детайлност е причината матрицата да е по-полезна от оценката: тя назовава конкретната двойка класове, които моделът не може да раздели.

Прецизността, извикването и F1 се дефинират за всеки клас, като се използва подход „един срещу останала част“, ​​където въпросният клас е положителният клас, а всичко останало е отрицателно. След това стойностите за всеки клас се комбинират по един от три начина:

  • Макро средна стойност: Изчислява метриката за всеки клас поотделно, след което взема непретеглената средна стойност. Всеки клас се брои еднакво, така че редките класове не се заглушават.
  • Микро средна стойност: Обединява броя на TP, FP и FN от всички класове, преди да изчисли метриката. Големите класове доминират, а за задачи с един етикет микропрецизността, микроповтаряемостта и точността са идентични.
  • Среднопретеглена стойност: Осреднява резултатите за клас, използвайки броя на истинските екземпляри на всеки клас като тегло, което прави дисбаланса в класовете видим.

Изберете макрос, когато всеки клас е еднакво важен, и претеглен, когато разпределението на класовете отразява реалния трафик.

Как да създадете матрица на объркването в Python

Библиотеката scikit-learn изгражда цялата таблица от два масива с етикети, така че не е необходимо ръчно броене. Примерът по-долу сравнява десет истински етикета с десет прогнози.

from sklearn.metrics import confusion_matrix

y_true = [1, 0, 1, 1, 0, 1, 0, 0, 1, 0]
y_pred = [1, 0, 1, 0, 0, 1, 1, 0, 1, 0]

cm = confusion_matrix(y_true, y_pred)
print(cm)

Извикването връща масив 2×2 NumPy, в който ред 0 е действителният отрицателен клас, а ред 1 е действителният положителен клас:

[[4 1]
 [1 4]]

Четенето на масива спрямо конвенцията scikit-learn дава TN = 4 (горе вляво), FP = 1 (горе вдясно), FN = 1 (долу вляво) и TP = 4 (долу вдясно). Разопаковането на тези четири стойности в един ред прави картатаping изрично:

tn, fp, fn, tp = confusion_matrix(y_true, y_pred).ravel()

За да получите прецизност, изчерпателност и F1 за всеки клас едновременно, включително макроса и претеглените средни стойности, описани по-горе, извикайте classification_report() вместо да се изчислява всяка метрика на ръка:

from sklearn.metrics import classification_report

print(classification_report(y_true, y_pred))

За графична версия, ConfusionMatrixDisplay.from_predictions(y_true, y_pred) рендира същата таблица като етикетирана топлинна карта. Пълният списък с аргументи, включително labels намлява normalize опции, е документиран в scikit-learn справка за confusion_matrixСъщата стъпка на оценка се прилага и за модели, изградени с TensorFlow, защото метриката зависи само от прогнозираните етикети.

Защо ви е необходима матрица на объркването?

Ето плюсовете и минусите на използването на матрица на объркването.

  • Това показва как един класификационен модел се обърква, когато прави прогнози.
  • Матрицата на объркването ви дава представа не само за грешките, които вашият класификатор допуска, но и за видовете грешки, които допуска.
  • Тази разбивка ви помага да преодолеете ограничението, свързано с използването само на точността на класификацията.
  • Всяка колона от матрицата на объркването представлява екземплярите на този предвиден клас.
  • Всеки ред от матрицата на объркването представлява екземплярите на действителния клас.
  • Това превръща оценката на модела в диагноза, сочейки към конкретната двойка класове, която се нуждае от повече данни или по-добра характеристика.

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

Въпроси и Отговори

Ако само два процента от записите са измамни, модел, който всеки път предсказва „не е измама“, постига 98 процента точност, без да улавя нищо. Матрицата незабавно разкрива празната клетка с положителен резултат, поради което припомнянето е по-важно от точността при изкривени данни.

Нормализираната матрица показва пропорции вместо сурови бройки, като обикновено разделя всяка клетка на общия брой на редовете. Това прави класове с много различни размери сравними с един поглед, въпреки че скрива размерите на извадките – така че докладвайте и двете версии, когато класовете са небалансирани.

Преизградете матрицата при няколко вероятностни гранични стойности и наблюдавайте размяната. Намаляването на прага премества записите от клетката с фалшиво отрицателни резултати в клетката с истински положителни резултати, което повишава припомняемостта, но също така увеличава и фалшиво положителните резултати. Изберете граничната стойност, където останалата комбинация от грешки струва най-малко.

Не. Матрицата брои дискретни съвпадения на етикети, така че се нуждае от категории. Регресионните резултати са непрекъснати и се оценяват с мерки за грешка, като например средна абсолютна грешка или R-квадрат. Разделянето на непрекъсната цел в групи е единственият начин да се направи матрицата смислена.

Припомнянето обикновено печели, защото пропуснатата диагноза струва много повече от ненужен последващ тест. Поради това инструментите за скрининг са настроени да поддържат фалшиво отрицателните резултати близо до нула и да приемат допълнителни фалшиво положителни резултати, които потвърдителният тест филтрира по-късно.

Автоматизираните инструменти за оценка на модели вече сканират всяка клетка извън диагонала, класират най-скъпите обърквания и предлагат кои класове се нуждаят от повече данни за обучение или обединен етикет. Те също така автоматично преместват праговете, превръщайки ръчното сравнение на матрици в класиран кратък списък.

Копилот на GitHub изготвя импорта, извикването на метриката и графиката на топлинната карта от кратък коментар. Третирайте черновата като отправна точка — винаги потвърждавайте сами реда на осите и аргумента с положителен етикет, защото транспонираната матрица обръща всяко заключение.

Достатъчно голям, че най-редкият клас все още запълва реда си с работещ брой - шепа извадки произвеждат показатели, които се колебаят рязко между изпълненията. Кръстосаната валидация, която сумира матрици в различните сгъвания, дава по-стабилна картина от едно малко разделяне на извадките.

Обобщете тази публикация с: