logo

Крива точності відкликання | ML

Є багато способів оцінити продуктивність класифікатора. У цій статті ми представляємо криву точного запам’ятовування та докладніше досліджуємо різницю між двома популярними методами звітування про продуктивність: кривою точного запам’ятовування (PR) і Робоча характеристика приймача (ROC) Крива. ROC Curve вже обговорюється в стаття . Давайте коротко розберемося, що таке крива точного запам'ятовування.

Що таке точність і запам'ятовування?

Точність

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

Precision = frac{True Positives}{True Positives + False Positives}



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

Відкликати

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

Precision = frac{True Positives}{True Positives + False Negatives}

  • Відкликання стосується кількості відповідних випадків, зафіксованих моделлю. Високий рівень запам'ятовування вказує на те, що модель має низький рівень хибно негативних результатів.

З точки зору емпіричного тлумачення, матриця плутанини, що складається з чотирьох основних термінів, є найкориснішим інструментом для розуміння точності та запам’ятовування:

  • True Positive (TP): кількість позитивних екземплярів класу, які точно визначено
  • Хибнопозитивний (FP): кількість негативних екземплярів класу, які помилково визначені як позитивні екземпляри класу, відома як хибнопозитивний (FP).
  • True Negative (TN): кількість негативних екземплярів класу, які точно визначено
  • False Negative (FN): кількість позитивних екземплярів класу, які помилково класифікуються як негативні екземпляри класу (False Negative або FN)

Крива Precision-Recall (PR) у машинному навчанні

Точність це частка правильно позитивні класифікації (справжні позитивні), поділені на загальну кількість передбачив позитивні класифікації, які були зроблені (істинно позитивні + хибно позитивні). Відкликати це частка правильно позитивні класифікації (справжні позитивні), поділені на загальну кількість по-справжньому позитивні класифікації (істинно позитивні + хибно негативні).



Крива PR — це просто графік зі значеннями Precision на осі Y і значеннями Recall на осі X. Іншими словами, крива PR міститьfrac{TP}{TP+FP} на осі ординат іfrac{TP}{TP+FN} на осі х.

  • Важливо зазначити, що точність також називають позитивним прогнозним значенням (PPV).
  • Відкликання також називають чутливістю, частотою попадань або істинно позитивним показником (TPR).

На малюнку нижче показано порівняння зразків кривих PR і ROC.

Інтерпретація кривої точного відкликання

Бажано, щоб алгоритм мав як високу точність, так і високу запам'ятовуваність. Однак більшість алгоритмів машинного навчання часто включають компроміс між ними. Хороша крива PR має більше AUC (площа під кривою) . На малюнку вище класифікатор, який відповідає синій лінії, має кращу продуктивність, ніж класифікатор, який відповідає зеленій лінії. Важливо відзначити, що класифікатор, який має вищу AUC на ROC крива завжди матиме вищу AUC на кривій PR. Розглянемо алгоритм, який класифікує, чи належить документ до категорії Спортивні новини. Припустімо, що є 12 документів із наступною базовою істинністю (фактичним) і мітками класу вихідних даних класифікатора.



декодування base64 у js
ID документаОсновна правдаВихід класифікатора
D1спортспорт
D2спортспорт
D3Не спортспорт
D4спортНе спорт
D5Не спортНе спорт
D6спортНе спорт
D7Не спортспорт
D8Не спортНе спорт
D9Не спортНе спорт
D10спортспорт
D11спортспорт
D12спортНе спорт

Тепер давайте знайдемо значення TP, TN, FP і FN.

Скористаємося прикладом із документами, класифікованими як «Спортивні» або «Неспортивні», щоб краще пояснити визначення «справжніх позитивних результатів» (TP), «дійсних негативних результатів» (TN), «хибних позитивних результатів» (FP) і «хибно-негативних результатів» (FN) у контексті класифікації:

Справжні позитиви (TP): Документи, які були точно віднесені до категорії «Спорт» і які насправді стосувалися спорту. Документи D1, D2, D10 і D11 у цьому сценарії є екземплярами TP.

Справжні негативи (TN): Істинно негативні – це ті випадки, коли документ був належним чином позначений як Неспортивний, навіть якщо він не мав нічого спільного зі спортом. У цьому випадку TN демонструється документами D5, D8 і D9.

Хибні позитивні результати (FP): Документи, які були помилково віднесені до категорії «Спорт», хоча вони не мали жодного відношення до спорту. Ось кілька прикладів FP, документи D3 і D7.

Помилкові негативи (FN): Приклади документів, які були помилково позначені як Неспортивні, але насправді вони стосувалися спорту. Документи D4, D6 та D12 у цьому випадку є прикладами FN.

Враховуючи ці підрахунки: місто =4, TN =3, FP =2, FN =3

Нарешті, точність і відкликання обчислюються таким чином:

Precision = frac{TP}{TP+FP} = frac{4}{6} = frac{2}{3}

Recall = frac{TP}{TP+FN} = frac{4}{7}

З цього випливає, що відкликання становить 4/7, коли точність становить 2/3. Іншими словами, з усіх випадків, які передбачалися позитивними, дві третини були точно класифіковані (точність), а з усіх справді позитивних випадків модель змогла зафіксувати чотири сьомих (пригадування).

не null в js

Встановлюючи різні пороги, ми отримуємо кілька таких пар точності, запам’ятовування. Побудувавши кілька таких пар P-R із значеннями в діапазоні від 0 до 1, ми отримаємо криву PR.

Потрібна крива PR, якщо існує крива ROC?

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

У цьому сценарії

  • TP = кількість відновлених документів, які є релевантними (добрі результати).
  • FP = кількість отриманих документів, які є нерелевантними (фальшиві результати пошуку).
  • TN = кількість невідновлених документів, які не є актуальними.
  • FN = кількість невідновлених документів, які є релевантними (хороші документи ми пропустили).

Крива ROC – це графік, що містить Recall = TPR =frac{TP}{TP+FN}на осі х і FPR =frac{FP}{FP+TN}на осі y. Оскільки ні. правдивих негативів, тобто невідновлених документів, які не є актуальними, настільки величезна кількість, що ФПР стає мізерно малим.

Крім того, FPR не допомагає нам добре оцінити пошукову систему, оскільки ми хочемо більше зосередитися на відновлених документах, а не на невідновлених. Крива PR допомагає вирішити цю проблему. Крива PR має значення Recall (TPR) на осі X, а точність =frac{TP}{TP+FP}на осі y. Точність допомагає підкреслити наскільки релевантними є отримані результати , що більш важливо при оцінці ІЧ-системи. Отже, крива PR частіше зустрічається навколо проблем, пов’язаних із пошуком інформації.

Коли використовувати ROC чи Precision-Recall Curves?

РПЦ Криві (робочі характеристики приймача) придатні, коли розподіл класів є збалансованим, а хибнопозитивні та хибнонегативні результати мають однакові наслідки. Вони зображують компроміс між чутливістю та специфічністю. Навпаки, криві Precision-Recall є кращими при роботі з незбалансованими наборами даних, зосереджуючись на продуктивності прогнозування позитивного класу.

Precision-Recall дає уявлення про здатність моделі правильно класифікувати позитивні випадки. Вибір між ROC і Precision-Recall залежить від конкретних потреб проблеми, наголошуючи на важливості розуміння розподілу даних і наслідків різних типів помилок.

Реалізація базового коду для кривої точного відкликання

Імпорт необхідних бібліотек

Ці рядки коду імпортують Бібліотеки Python і модулі, необхідні для створення кривої точного відкликання sci-kit-learn та візуалізуйте результати за допомогою Matplotlib . Matplotlib — це популярна бібліотека побудови графіків Python, а pyplot надає простий інтерфейс для створення різних типів графіків і діаграм. Логістична регресія є популярним алгоритмом класифікації для завдань бінарної та багатокласової класифікації. Крива точності запам’ятовування та AUC є популярними оціночними показниками для бінарна класифікація проблеми, особливо при роботі з незбалансованими наборами даних.

Python3 import matplotlib.pyplot as plt from sklearn.datasets import make_classification from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import precision_recall_curve, auc>

Використаний набір даних

Цей код генерує синтетичний набір даних для задачі двійкової класифікації за допомогою функції make_classification Sci-kit-learn.

Python3 # Generate a synthetic dataset X, y = make_classification( n_samples=1000, n_features=20, n_classes=2, random_state=42)>

Тренуйтеся та тестуйте спліт

The train_test_split Функція в scikit-learn використовується в цьому фрагменті коду для поділу попередньо згенерованого синтетичного набору даних (X і y) на набори для навчання та тестування. Цей поділ є критично важливим кроком в оцінці моделей машинного навчання. Модель буде навчено на даних X_train і y_train перед тестуванням на даних X_test і y_test, щоб побачити, наскільки добре вона працює на невидимих ​​зразках. Функція train_test_split розділяє набори для навчання та тестування, гарантуючи, що продуктивність моделі відображає її узагальнення на нові, раніше невидимі дані.

Python3 # Split the dataset into training and testing sets X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=42)>

Будівництво моделі

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

нескінченний цикл
Python3 # Train a logistic regression model (you can replace this with your own classifier) model = LogisticRegression() model.fit(X_train, y_train)>

Модель Прогнозування

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

Python3 # Predict probabilities for positive class y_scores = model.predict_proba(X_test)[:, 1] # Calculate precision and recall precision, recall, thresholds = precision_recall_curve(y_test, y_scores) # Calculate Area Under the Curve (AUC) for precision-recall curve auc_score = auc(recall, precision)>

Побудова кривої PR

Цей блок коду надає стандартний метод для візуалізації кривої «точність-запам’ятовування» та дає змогу оцінити компроміс «точність — запам’ятовування» за різних порогів прийняття рішення. Загальна продуктивність моделі на кривій точності запам’ятовування підсумовується показником AUC, указаним у легенді.

Python3 # Plot precision-recall curve plt.figure(figsize=(8, 6)) plt.plot(recall, precision, label=f'Precision-Recall Curve (AUC = {auc_score:.2f})') plt.xlabel('Recall') plt.ylabel('Precision') plt.title('Precision-Recall Curve') plt.legend() plt.show()>

Вихід :


Precision-Recall-Curve-Geeksforgeeks

Крива точності відкликання


Часті запитання (FAQ)

Q. Що таке точність?

Співвідношення точно передбачених позитивних спостережень до загальної кількості прогнозованих позитивних відоме як точність. Він вимірює, наскільки добре модель передбачає позитивні результати. Нижче наведено формулу точності:

Precision = frac{True Positives}{True Positives + False Positives}

З. Що таке відкликання?

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

Precision = frac{True Positives}{True Positives + False Negatives}

fmoviez

З. Чому нам потрібна точність і запам'ятовування?

Для оцінки продуктивності класифікатора в задачах бінарної та мультикласової класифікації використовуються дві оцінювальні метрики: точність і запам’ятовування. Точність позитивного передбачення вимірюється точністю, а повнота позитивного передбачення вимірюється пригадуванням.

З. Який компроміс між відкликанням і точністю?

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

З. Що таке оцінка F1 і як вона пов’язана з точністю та запам’ятовуванням?

Середнє гармонійне пригадування та точність відоме як бал F1. Він пропонує справедливе вимірювання, яке враховує як помилкові позитивні, так і помилкові негативні результати. Оцінка F1 розраховується за такою формулою:

F1-Score = frac{2 imes Precision imes Recall}{Precision + Recall}

Оцінка F1 особливо корисна, коли точність і запам’ятовування не врівноважені, і бажаний баланс між ними.