Як обчислити збалансовану точність у python за допомогою sklearn


Збалансована точність – це показник, який ми можемо використовувати для оцінки продуктивності моделі класифікації .

Він розраховується таким чином:

Збалансована точність = (чутливість + специфічність) / 2

золото:

  • Чутливість : «Справжній позитивний рівень» – відсоток позитивних випадків, які модель може виявити.
  • Специфічність : «справжній негативний рівень» – відсоток негативних випадків, які модель може виявити.

Ця метрика особливо корисна, коли два класи незбалансовані, тобто один клас виглядає набагато більше, ніж інший.

Наприклад, припустімо, що спортивний аналітик використовує модель логістичної регресії , щоб передбачити, чи будуть 400 різних студентських баскетболістів задрафтовані в НБА.

Наступна матриця плутанини узагальнює прогнози, зроблені моделлю:

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

  • Чутливість : «справжній позитивний коефіцієнт» = 15 / (15 + 5) = 0,75
  • Специфічність : «справжній негативний коефіцієнт» = 375 / (375 + 5) = 0,9868

Тоді ми можемо обчислити збалансовану точність наступним чином:

  • Збалансована точність = (чутливість + специфічність) / 2
  • Збалансована точність = (0,75 + 9868) / 2
  • Збалансована точність = 0,8684

Збалансована точність моделі виявляється 0,8684 .

У наступному прикладі показано, як обчислити збалансовану точність для цього конкретного сценарію за допомогою функції Balanced_accuracy_score() із бібліотеки sklearn у Python.

Приклад: обчислення збалансованої точності в Python

Наступний код показує, як визначити масив прогнозованих класів і масив фактичних класів, а потім обчислити збалансовану точність моделі в Python:

 import numpy as np
from sklearn. metrics import balanced_accuracy_score

#define array of actual classes
actual = np. repeat ([1, 0], repeats=[20, 380])

#define array of predicted classes
pred = np. repeat ([1, 0, 1, 0], repeats=[15, 5, 5, 375])

#calculate balanced accuracy score
balanced_accuracy_score(actual, pred)

0.868421052631579

Збалансована точність становить 0,8684 . Це відповідає значенню, яке ми обчислили раніше вручну.

Примітка . Повну документацію щодо функції Balanced_accuracy_score() можна знайти тут .

Додаткові ресурси

Вступ до збалансованої точності
Як виконати логістичну регресію в Python
Як розрахувати результат F1 у Python

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *