Едно число не стига
Миналата седмица Test and Score ви даде CA — дял познати редове. В Teachable Machine видяхте „точност по клас“. И двете са една и съща мярка. Тя е най-естествената и най-подвеждащата.
Точност (accuracy)
Делът на познатите примери от всички: познати / общо.
Проблемът е, че точността слива два съвсем различни вида грешка. Трябва ни начин да ги видим поотделно.
Матрицата на грешките
Всяко предсказание попада в едно от четири квадратчета: моделът е казал „да“ или „не“, а истината е била „да“ или „не“. Това е матрицата, която Orange показва в Confusion Matrix.
| Означение | Име | Какво се е случило |
|---|---|---|
| TP | вярно положителен | спам, разпознат като спам |
| FP | грешно положителен | нормално писмо, обявено за спам |
| FN | грешно отрицателен | спам, пропуснат в пощата |
| TN | вярно отрицателен | нормално писмо, оставено на мира |
Прецизност и чувствителност
Прецизност (precision)
От всичко, което моделът е обявил за спам, каква част наистина е спам: TP / (TP + FP). Въпросът „когато каже да, вярно ли е“.
Чувствителност (recall, обхват)
От целия истински спам, каква част моделът е хванал: TP / (TP + FN). Въпросът „изпуска ли“.
За матрицата по-горе: прецизност = 40 / (40 + 30) = 0.57, чувствителност = 40 / (40 + 10) = 0.80. Филтърът хваща 80% от спама, но почти половината от маркираните писма всъщност не са спам. Точността 96% не показваше нищо от това. А „мързеливият“ модел, който винаги казва „нормално“: точност 95%, чувствителност 0.
Двете винаги се дърпат
Ако вдигнем прага и обявяваме за спам само това, в което сме много уверени, прецизността расте, а чувствителността пада. Ако свалим прага, става обратното. Не съществува настройка, която подобрява и двете; изборът зависи от цената на всяка грешка. Когато трябва едно число, се използва F1 — средно между двете, високо само когато и двете са високи. Това са колоните Precision, Recall и F1 в Test and Score.
Пренагаждане и недостатъчно обучение
Пренагаждане (overfitting)
Моделът е запомнил обучаващите данни заедно с техните случайности и шум. Отличен е върху тях и слаб върху нови.
Недостатъчно обучение (underfitting)
Моделът е твърде прост, за да улови закономерността. Слаб е и върху обучаващите, и върху тестовите данни.
| Пренагаждане | Недостатъчно обучение | |
|---|---|---|
| Точност върху train | много висока (99%) | ниска (60%) |
| Точност върху test | ниска (70%) | ниска (58%) |
| Признак | голяма разлика между двете | и двете са слаби |
| Лекарство | повече данни, по-прост модел (дърво с дълбочина 3) | по-сложен модел, повече признаци |
Пристрастия в данните
Алгоритъмът няма мнение. Той намира закономерности в примерите, които сме му дали — включително такива, които не бихме искали да научи. Ако в данните една група исторически е получавала по-ниски оценки, моделът ще предскаже по-ниски оценки за нея. Не защото „смята“ така, а защото това е закономерността в числата.
Пристрастие (bias)
Систематична грешка, при която моделът се справя различно добре с различни групи или възпроизвежда несправедливост, съдържаща се в данните.
| Откъде идва | Какво се случва | Реален случай (накратко) |
|---|---|---|
| Изкривена извадка | данните не отразяват тези, за които ще се използва моделът | системи за разпознаване на лица с грешка под 1% за светлокожи мъже и над 30% за тъмнокожи жени (изследване от 2018 г.) |
| Историческо пристрастие | данните са верни, но описват несправедливо минало | модел за подбор на кадри, обучен върху стари автобиографии, понижава кандидатури с думата „женски“; проектът е спрян |
| Неподходящ заместител | признакът изглежда неутрален, но носи неравенството | медицински модел мери тежестта на болестта по разходите за лечение — група, лекувана по-малко, изглежда по-здрава |
| Обратна връзка | решенията на модела създават новите данни и усилват наклона | патрули там, където моделът предсказва престъпления → повече регистрирани престъпления там |
Как се търсят причините за грешките
Един CA не казва какво да поправите. Матрицата и сбърканите редове казват. Въпросите, в този ред:
- Кои примери бърка? Извадете ги (Confusion Matrix → Data Table в Orange; тетрадката от урок 13).
- Какво им е общо? Един и същ клас, един и същ фон, малки стойности на един признак, липсващи стойности?
- Липсва ли клас? Всичко „друго“ ли попада в най-близкия познат клас?
- Малко ли са примерите от този клас? Под 20–30 реда на клас почти нищо не се учи.
- Има ли признак, който не носи информация — или носи прекалено много (изтичане)?
- Различна ли е точността по групи — по клас, пол, устройство, осветление?
Какво трябва да запомниш
- Точността слива двата вида грешка; при рядък клас е безполезна сама по себе си — питайте колко чест е класът.
- Матрицата на грешките дели предсказанията на TP, FP, FN, TN; коя грешка е по-скъпа, решава човекът.
- Прецизност = TP/(TP+FP) — „когато каже да, вярно ли е“; чувствителност = TP/(TP+FN) — „изпуска ли“.
- Пренагаждане: отличен на train, слаб на test; лекува се с повече данни и по-прост модел.
- Пристрастията идват от данните — извадка, история, заместители, обратна връзка — и се откриват само с мерки по групи.
- Грешките се анализират по списък: кои примери, какво им е общо, липсва ли клас, малко ли са, различно ли е по групи.