Как рассчитать сбалансированную точность в 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *