Jak obliczyć zrównoważoną precyzję w pythonie za pomocą sklearn


Zrównoważona dokładność to metryka, której możemy użyć do oceny wydajności modelu klasyfikacyjnego .

Oblicza się go w następujący sposób:

Zrównoważona dokładność = (czułość + swoistość) / 2

Złoto:

  • Czułość : „prawdziwie pozytywny współczynnik” – procent pozytywnych przypadków, które model jest w stanie wykryć.
  • Specyfika : „prawdziwie ujemny współczynnik” – odsetek przypadków negatywnych, jaki model jest w stanie wykryć.

Metryka ta jest szczególnie przydatna, gdy obie klasy są niezrównoważone, to znaczy, że jedna klasa pojawia się znacznie częściej niż druga.

Załóżmy na przykład, że analityk sportowy korzysta z modelu regresji logistycznej , aby przewidzieć, czy 400 różnych koszykarzy z college’u zostanie powołanych do NBA.

Poniższa macierz zamieszania podsumowuje przewidywania dokonane przez model:

Aby obliczyć zrównoważoną dokładność modelu, najpierw obliczymy czułość i swoistość:

  • Czułość : „prawdziwie dodatni współczynnik” = 15 / (15 + 5) = 0,75
  • Specyfika : „Współczynnik prawdziwie ujemny” = 375 / (375 + 5) = 0,9868

Następnie możemy obliczyć zrównoważoną precyzję w następujący sposób:

  • Zrównoważona dokładność = (czułość + swoistość) / 2
  • Zrównoważona dokładność = (0,75 + 9868) / 2
  • Zrównoważona dokładność = 0,8684

Zrównoważona dokładność modelu wynosi 0,8684 .

Poniższy przykład pokazuje, jak obliczyć zrównoważoną dokładność dla tego konkretnego scenariusza przy użyciu funkcji Balanced_accuracy_score() z biblioteki sklearn w języku Python.

Przykład: Obliczanie zrównoważonej precyzji w Pythonie

Poniższy kod pokazuje, jak zdefiniować tablicę przewidywanych klas i tablicę rzeczywistych klas, a następnie obliczyć zrównoważoną dokładność modelu w Pythonie:

 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

Zrównoważona precyzja wynosi 0,8684 . Odpowiada to wartości, którą obliczyliśmy wcześniej ręcznie.

Uwaga : pełną dokumentację funkcji Balanced_accuracy_score() można znaleźć tutaj .

Dodatkowe zasoby

Wprowadzenie do zrównoważonej dokładności
Jak przeprowadzić regresję logistyczną w Pythonie
Jak obliczyć wynik F1 w Pythonie

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *