So berechnen Sie die "balanced accuracy" in Python mit sklearn

Von Fabian
Kategorie: Python
Tags: Regression
Lesezeit: 2 Minuten

Ausgewogene Genauigkeit (engl. balanced accuracy) ist eine Metrik, die wir verwenden können, um die Leistung eines Klassifizierungsmodells zu bewerten.

Es wird berechnet als:

Ausgewogene Genauigkeit = (Sensitivität + Spezifität) / 2

wo:

  • Sensitivität: Die True-Positiv-Rate“ – der Prozentsatz der positiven Fälle, die das Modell erkennen kann.
  • Spezifität: Die „True-Negativ-Rate“ – der Prozentsatz der negativen Fälle, die das Modell erkennen kann.

Diese Metrik ist besonders nützlich, wenn die beiden Klassen unausgewogen sind – das heißt, eine Klasse erscheint viel häufiger als die andere.

Angenommen, ein Sportanalyst verwendet ein logistisches Regressionsmodell, um vorherzusagen, ob 400 verschiedene College-Basketballspieler in die NBA eingezogen werden oder nicht.

Die folgende Konfusionsmatrix fasst die Vorhersagen des Modells zusammen:

Ausgewogen

Um die ausgewogene Genauigkeit des Modells zu berechnen, berechnen wir zunächst die Sensitivität und Spezifität:

  • Sensitivität: Die True-Positiv-Rate“ = 15 / (15 + 5) = 0,75
  • Spezifität: Die „True-Negativ-Rate“ = 375 / (375 + 5) = 0,9868

Wir können dann die ausgeglichene Genauigkeit wie folgt berechnen:

  • Ausgewogene Genauigkeit = (Sensitivität + Spezifität) / 2
  • Ausgewogene Genauigkeit = (0,75 + 9868) / 2
  • Ausgeglichene Genauigkeit = 0,8684

Die ausgewogene Genauigkeit für das Modell beträgt 0,8684.

Das folgende Beispiel zeigt, wie die ausgeglichene Genauigkeit für genau dieses Szenario mithilfe der Funktion „balanced_accuracy_score()“ aus der sklearn-Bibliothek in Python berechnet wird.

Beispiel: Berechnen der ausgewogenen Genauigkeit in Python

Der folgende Code zeigt, wie Sie ein Array von vorhergesagten Klassen und ein Array von tatsächlichen Klassen definieren und dann die ausgewogene Genauigkeit eines Modells in Python berechnen:

import numpy as np
von sklearn. Metriken importieren balance_accuracy_score

#Array von tatsächlichen Klassen definieren
tatsächlich = np. wiederholen ([1, 0], Wiederholungen=[20, 380])

#Array vorhergesagter Klassen definieren
pred = np. wiederholen ([1, 0, 1, 0], Wiederholungen=[15, 5, 5, 375])

#Ausgewogene Genauigkeitsbewertung berechnen
balance_accuracy_score(tatsächlich, vorher)

0,868421052631579

Die balanced accuracy beträgt 0,8684. Dies entspricht dem Wert, den wir zuvor von Hand berechnet haben.

Hinweis: Die vollständige Dokumentation für die Funktion balanced_accuracy_score() finden Sie hier.

Zusätzliche Ressourcen

So führen Sie eine logistische Regression in Python durch
So berechnen Sie die F1-Punktzahl in Python

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: