[PYTHON] Über die Verwirrungsmatrix

Was ist eine Verwirrungsmatrix?

Eine Matrix, die die Zahl darstellt, die korrekt bestimmt wurde, und die Zahl, die fälschlicherweise zwischen dem vorhergesagten Ergebnis, das durch ein Modell geleitet wurde, und dem tatsächlichen Wert bestimmt wurde.

Wann wird die Verwirrungsmatrix verwendet?

Im Allgemeinen binäre Klassifizierung.

Warum wird die Verwirrungsmatrix verwendet?

Wenn Sie beispielsweise anhand eines bestimmten Bildes vorhersagen möchten, ob Sie Krebs haben oder nicht, Der tatsächliche Wert ist 98/100 für Nicht-Krebs-Menschen (0) 2/100 für Menschen mit Krebs (1) Angenommen, es war.

Wenn zu diesem Zeitpunkt alle Vorhersagen 0 sind, beträgt die korrekte Antwortrate 98%. Dies sieht nach einer guten Zahl aus, wenn man die korrekte Antwortrate betrachtet. Ist das wirklich eine gute Bewertung? Sind die beiden Leute, die es verpasst haben, nicht ein fataler Fehler?

Auch in solchen Fällen wird die Verwirrungsmatrix verwendet, um eine erfolgreiche Bewertung vorzunehmen.

Verwenden wir eine Verwirrungsmatrix

Im Allgemeinen ist die horizontale Achse das Vorhersageergebnis des Modells und die vertikale Achse ist der tatsächliche Wert. スクリーンショット 2020-08-09 21.02.50.png

True: Ergebnisse, die korrekt vorhergesagt werden können Falsch: Falsch vorhergesagtes Ergebnis positiv: Das Ergebnis der Feststellung, dass eine Krankheit vorliegt (= 1) negativ: Ergebnis der Feststellung, dass keine Krankheit vorliegt (= 0)

matrix.py



from sklearn.metrics import confusion_matrix

#Erstellen einer Verwirrungsmatrix
cm = confusion_matrix(y_true=y_test, y_pred=y_pred)

# y_Übergabe an true sind die objektiven Variablendaten für die Bewertung
# y_X an pred übergeben_mit Test vorhersagen()Ergebnis mit der Funktion vorhergesagt

#Datenrahmen der Verwirrungsmatrix
df_cm = pd.DataFrame(np.rot90(cm, 2), index=["actual_Positive", "actual_Negative"], columns=["predict_Positive", "predict_Negative"])
print(df_cm)

#Visualisierung der Verwirrungsmatrix durch Heatmap
sns.heatmap(df_cm, annot=True, fmt="2g", cmap='Blues')
plt.yticks(va='center')
plt.show()
スクリーンショット 2020-08-09 21.10.48.png

Betrachten Sie den Bewertungsindex, der die Leistung des Modells von hier aus misst

Lösung / Genauigkeit

Überprüfen Sie zunächst, wie korrekt Sie die gesamten Daten klassifizieren können

Accuracy = \dfrac{TP + TN}{TP + FP + FN + TN}

Präzision

Überprüfen Sie nach Erhalt eines positiven (1) Ergebnisses, ob Sie tatsächlich richtig geantwortet haben

Presision=\dfrac{TP}{TP + FP}

Rückruf, True Positive Rate

Die tatsächlichen Daten sind positiv (1), wie viel Werden die vorhergesagten Daten korrekt als positiv geschätzt? Je höher dieser Wert ist, desto besser ist die Leistung und desto weniger falsch positive Beurteilungen werden vorgenommen.

Recall=\dfrac{TP}{TP + FN}

True Negative Rate

Die tatsächlichen Daten sind negativ (0), wie viel Werden die vorhergesagten Daten korrekt als negativ geschätzt? Je höher dieser Wert ist, desto besser ist die Leistung und desto weniger falsche negative Urteile.

Recall=\dfrac{TN}{FP + TN}

Falsch negative Rate

Die tatsächlichen Daten sind positiv (1), wie viel Wurden die vorhergesagten Daten fälschlicherweise als negativ angenommen? Je niedriger dieser Wert ist, desto besser ist die Leistung und es gibt nur wenige falsch positive Beurteilungen.

False\ Negative\ Rate=\dfrac{FN}{TP + FN}

Falsch positive Rate

Die tatsächlichen Daten sind negativ (0), wie viel Wurden die vorhergesagten Daten fälschlicherweise als positiv angenommen? Je niedriger dieser Wert ist, desto besser ist die Leistung und es gibt nur wenige falsche negative Beurteilungen.

False\ Positive\ Rate=\dfrac{FP}{FP + TN}

Messen Sie die wahre positive Rate und die wahre negative Rate in dem Beispiel, das im Kapitel "Warum wird die Verwirrungsmatrix verwendet?" Behandelt wird.

Positives Vorhersageergebnis Negatives Vorhersageergebnis
Tatsächlich positives Ergebnis 98 0
Tatsächlich negatives Ergebnis 2 0

Accuracy = \dfrac{98 + 0}{98 + 2 + 0 + 0}=0.98

98% korrekte Antwortrate

Recall=\dfrac{98}{98 + 0}=1

100% => Dies bestimmt, dass alle Positiven korrekt klassifiziert sind

Recall=\dfrac{0}{2 + 0}=0

0% => Dies beurteilt, dass alle Negative versehentlich klassifiziert wurden.

Zusammenfassung

Berechnen Sie einen Index zur Messung der Leistung, um ein Modell für maschinelles Lernen mit binärer Klassifizierung in Unternehmen zu verwenden. Es ist wichtig, den für den Zweck geeigneten Indexwert zu verstehen und zu verwenden

Recommended Posts

Über die Verwirrungsmatrix
Über die Verwirrungsmatrix
Über den Test
Über die Warteschlange
Informationen zur Entfaltungsfunktion
Über das Besuchermuster
Über Scatter_Matrix
Über das Python-Modul venv
Über die Aufzählungsfunktion (Python)
Über das Problem der reisenden Verkäufer
Über das Verständnis des 3-Punkt-Lesers [...]
Über die Komponenten von Luigi
Über die Funktionen von Python
Ruft den Index jedes Elements der Verwirrungsmatrix in Python ab
Denken Sie an das Problem der minimalen Änderung
Über das bestellte Patrouillenverkäuferproblem
[Python] Was ist @? (Über Dekorateure)
Über den Rückgabewert von pthread_mutex_init ()
Über den Rückgabewert des Histogramms.
Über den Grundtyp von Go
Über die Obergrenze von Threads-max
Über die durchschnittliche Option von sklearn.metrics.f1_score
Über das Verhalten von Yield_per von SqlAlchemy
Über die Größe der Punkte in Matplotlib
Informationen zur Grundlagenliste der Python-Grundlagen
Denken Sie grob über die Verlustfunktion nach
[Python Kivy] Über das Ändern des Designthemas
Informationen zum Verhalten von enable_backprop von Chainer v2
Informationen zur virtuellen Umgebung von Python Version 3.7
Führen Sie die Matrix zum Terminal Ihres Chefs!
Verschiedene Hinweise zum Django REST-Framework
Steuern Sie das Matrix-LED-Panel von ROS aus
Denken Sie grob über die Gradientenabstiegsmethode nach
[Python] Fassen Sie die rudimentären Dinge über Multithreading zusammen
Informationen zu der von Ihnen verwendeten Entwicklungsumgebung
Über die Argumente der Setup-Funktion von PyCaret
Was ist mit 2017 rund um die Crystal-Sprache? (Täuschung)
Über die Beziehung zwischen Git und GitHub
Über die Normalgleichung der linearen Regression
Ein Memo, dass ich das Pyramid Tutorial ausprobiert habe
Benötigt die Verwirrungsmatrix auch das Verhältnis jedes Elements zur gesamten Zeile?