Матрица на объркването в машинното обучение с ПРИМЕР
⚡ Умно обобщение
Матрицата на объркването е таблица за измерване на производителността на класификационни модели, която сравнява прогнозираните етикети с известни действителни етикети, разкривайки точно кои класове класификаторът определя правилно и кои греши.
Какво представлява матрицата на объркването?
A матрица на объркване е техника за измерване на производителността за машинно обучение класификация. Това е таблица, която показва как се е представил класификационен модел върху набор от тестови данни, за които истинските стойности вече са известни. Терминът „матрица на объркване“ е достатъчно прост, но терминологията, изградена върху него, може да бъде объркваща, така че всяка част е обяснена по-долу на разбираем език.
Матрицата се отнася за всеки контролиран класификатор — логистична регресия, дърво на решенията, Наивен модел на Бейс или дълбока невронна мрежа — защото сравнява само две колони с етикети: какво е предсказал моделът и какво всъщност е било вярно.
Четири резултата от матрицата на объркването
Матрицата на объркването визуализира точността на класификатора чрез сравняване на действителните и прогнозираните класове. Двоичната матрица на объркване е съставена от квадрати:

Таблицата по-горе изобразява четирите квадрата, които всяка двоична матрица на объркване съдържа:
- TP: Истински положителен: Прогнозираните стойности са правилно прогнозирани като действителни положителни
- FP: Фалшиво положителен: Прогнозираните стойности са неправилно прогнозирани като действително положителни, т.е. отрицателните стойности са прогнозирани като положителни
- FN: Фалшиво отрицателен: Положителните стойности се прогнозират като отрицателни
- TN: Истински отрицателен: Прогнозираните стойности са правилно прогнозирани като действително отрицателни
Статистиката дава на двете клетки за грешки собствени имена. Фалшиво положителен резултат е Грешка тип I — моделът е задействал тревога, която никога не е трябвало да се задейства. Фалшиво отрицателният резултат е Грешка тип II — моделът замълча, когато е трябвало да вдигне тревога. Знанието кой от двата е по-скъп за вашия проблем определя кой показател ще настроите по-късно.
Можете да изчислите теста за точност от матрицата на объркване, както е показано във формулата по-долу:
Пример за матрица на объркването
Матрицата на объркването е полезен метод за машинно обучение, който ви позволява да измервате Remilla (повтаряемост), Precision (прецизност), Accuracy (точност) и AUC-ROC кривата. Примерът с футболния мач по-долу показва какво означават термините True Positive (истински положителен), True Negative (истински отрицателен), False Positive (фалшиво положителен) и False Negative (фалшиво отрицателен) в ежедневния език.
Истинско положително:
Прогнозата ви беше положителна и тя се оказа вярна. Например, бяхте предвидили, че Франция ще спечели световното първенство и тя спечели.
Истински отрицателен:
Вие прогнозирахте отрицателен резултат и това също е вярно. Вие бяхте предвидили, че Англия няма да спечели, а тя загуби.
Фалшив положителен:
Прогнозата ви е положителна и е невярна.
Бяхте предвидили, че Англия ще спечели, но тя загуби.
Фалшив отрицателен:
Прогнозата ви е отрицателна и резултатът я прави невярна.
Бяхте прогнозирали, че Франция няма да спечели, но тя спечели.
Трябва да запомните, че първата дума описва дали прогнозата е била правилна или грешна („Вярно“ или „Невярно“), а втората дума описва какво е предсказал моделът („Положително“ или „Отрицателно“).
Как да изчислим матрица на объркване
Ето стъпка по стъпка процеса за изчисляване на матрица на объркване в извличане на данни:
- Стъпка 1) Първо, ви е необходим тестов набор от данни заедно с очакваните стойности на резултатите.
- Стъпка 2) Предвидете всички редове в тестовия набор от данни.
- Стъпка 3) Сравнете очакваните резултати с прогнозите и пребройте:
- Общият брой правилни прогнози за всеки клас.
- Общият брой неправилни прогнози за всеки клас.
След това тези числа са организирани по дадените по-долу методи:
- Всеки ред от матрицата съответства на действителен клас.
- Всяка колона от матрицата е свързана с предвиден клас.
- Общият брой правилни и неправилни класификации се въвеждат в таблицата.
- Сумата от правилните прогнози за даден клас отива в клетката, където действителният ред на този клас среща собствената му прогнозирана колона - диагонала.
- Сумата от неправилните прогнози за даден клас отива в действителния ред за стойността на този клас и в прогнозираната колона на избрания от модела клас.
Ролите на редовете и колоните са по-скоро конвенция, отколкото закон, и някои инструменти за чертане транспонират оформлението, така че винаги четете етикетите на осите, преди да интерпретирате матрица. Ориентацията, използвана тук – действителна за редовете, прогнозирана за колоните – е тази, която 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, защото метриката зависи само от прогнозираните етикети.
Защо ви е необходима матрица на объркването?
Ето плюсовете и минусите на използването на матрица на объркването.
- Това показва как един класификационен модел се обърква, когато прави прогнози.
- Матрицата на объркването ви дава представа не само за грешките, които вашият класификатор допуска, но и за видовете грешки, които допуска.
- Тази разбивка ви помага да преодолеете ограничението, свързано с използването само на точността на класификацията.
- Всяка колона от матрицата на объркването представлява екземплярите на този предвиден клас.
- Всеки ред от матрицата на объркването представлява екземплярите на действителния клас.
- Това превръща оценката на модела в диагноза, сочейки към конкретната двойка класове, която се нуждае от повече данни или по-добра характеристика.
Тази диагностична стойност е причината, поради която матрицата на объркването е в центъра на етапа на оценка във всеки наука за данните работен процес и защо обикновено това е първата таблица, която се преглежда, преди класификаторът да бъде повишен в производствен режим.


