I eine Konfusionsmatrix für 2 Klassen mit vorher berechneten Summen in einem pandas Datenrahmen-Format haben:Berechnung Präzision und Recall aus Konfusionsmatrix in Python
Actual_class Predicted_class_0 Predicted_class_1 Total
0 0 39 73 112
1 1 52 561 613
2 All 91 634 725
Ich benötige Genauigkeit zu berechnen, und erinnern an eine Schleife als I unter Verwendung von benötigen eine allgemeine Falllösung für mehr Klassen.
Präzision für Klasse 0 wäre 39/91 und für Klasse 1 wäre 561/634.
Rückruf für Klasse 0 wäre 39/112 und für Klasse 1 wäre 561/613.
Also muss ich durch diagonale und Summen zu durchlaufen die folgenden Ergebnisse
Actual_class Predicted_class_0 Predicted_class_1 Total Precision Recall
0 0 39 73 112 43% 35%
1 1 52 561 613 88% 92%
2 All 91 634 725
Totals (Alle Zeile und Spalte Gesamt) erhalten wird anschliessend entfernt werden, so gibt es keinen Grund, sie zu berechnen.
Ich habe versucht, den folgenden Code, aber es geht nicht durch diagonale und verliert Daten für die Klasse 0:
cols = [c for c in cross_tab.columns if c.lower()[:4] == 'pred']
for c in cols:
cross_tab["Precision"] = cross_tab[c]/cross_tab[c].iloc[-1]
for c in cols:
cross_tab["Recall"] = cross_tab[c]/cross_tab['Total']
Ich bin Anfänger zu Pandas Matrix-Operationen und brauchen Ihre Hilfe wirklich.
Ich bin mir sicher, dass es eine Möglichkeit gibt, fortzufahren, ohne vorher Summen zu berechnen.
Vielen Dank !!!