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