Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Konfusionsmatrix | Modelle Vergleichen
Klassifikation mit Python

bookKonfusionsmatrix

Bei einer Vorhersage für ein binäres Klassifikationsproblem gibt es nur vier mögliche Ergebnisse:

Im obigen Bild sind die tatsächlichen Werte (wahre Labels) von oben nach unten in absteigender Reihenfolge angeordnet, während die vorhergesagten Werte von links nach rechts in aufsteigender Reihenfolge dargestellt werden. Dies ist das Standardlayout, das von scikit-learn beim Anzeigen von Konfusionsmatrizen verwendet wird.

Note
Hinweis

Verschiedene Bibliotheken oder Visualisierungen können eine andere Anordnung verwenden – zum Beispiel die tatsächlichen Werte auf der x-Achse und die vorhergesagten Werte auf der y-Achse platzieren. Der einzige Unterschied besteht jedoch im Layout; die Werte in der Matrix bleiben gleich.

Diese Ergebnisse werden als True Positive (TP), True Negative (TN), False Positive (FP) und False Negative (FN) bezeichnet. "True" oder "False" gibt an, ob die Vorhersage korrekt ist, während sich "Positive" oder "Negative" darauf bezieht, ob die vorhergesagte Klasse 1 oder 0 ist.

Das bedeutet, es gibt zwei Arten von Fehlern, die auftreten können: False Positives und False Negatives. Eine False-Positive-Vorhersage wird auch als Fehler 1. Art bezeichnet, während eine False-Negative-Vorhersage als Fehler 2. Art bezeichnet wird.

Konfusionsmatrix

Die erste Möglichkeit, die Leistung des Modells zu betrachten, besteht darin, die Vorhersagen in einer Konfusionsmatrix wie folgt zu organisieren:

Eine Konfusionsmatrix kann in Python mit der Funktion confusion_matrix() aus sklearn erstellt werden:

from sklearn.metrics import confusion_matrix

conf_matrix = confusion_matrix(y_true, y_pred)

Für eine bessere Visualisierung kann die Funktion heatmap() aus seaborn verwendet werden:

sns.heatmap(conf_matrix)

Hier ist ein Beispiel, wie die Konfusionsmatrix für eine Random-Forest-Vorhersage auf dem Titanic-Datensatz berechnet wird:

12345678910111213141516
import pandas as pd import seaborn as sns from sklearn.metrics import confusion_matrix from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split # Read the data and assign the variables df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/titanic.csv') X, y = df.drop('Survived', axis=1), df['Survived'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1) # Build and train a Random Forest and predict target for a test set random_forest = RandomForestClassifier().fit(X_train, y_train) y_pred = random_forest.predict(X_test) # Build a confusion matrix conf_matrix = confusion_matrix(y_test, y_pred) sns.heatmap(conf_matrix, annot=True);
copy

Es ist auch möglich, anstelle der Instanzanzahlen die Prozentsätze darzustellen, indem der Parameter normalize verwendet wird:

conf_matrix = confusion_matrix(y_true, y_pred, normalize='all')
12345678910111213141516
import pandas as pd import seaborn as sns from sklearn.metrics import confusion_matrix from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split # Read the data and assign the variables df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/titanic.csv') X, y = df.drop('Survived', axis=1), df['Survived'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1) # Build and train a Random Forest and predict target for a test set random_forest = RandomForestClassifier().fit(X_train, y_train) y_pred = random_forest.predict(X_test) # Build a confusion matrix conf_matrix = confusion_matrix(y_test, y_pred, normalize='all') sns.heatmap(conf_matrix, annot=True);
copy
question mark

Was ist der Zweck einer Konfusionsmatrix?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 1

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Suggested prompts:

Can you explain what each value in the confusion matrix represents?

What is the difference between a false positive and a false negative?

How do I interpret the normalized confusion matrix?

Awesome!

Completion rate improved to 4.17

bookKonfusionsmatrix

Swipe um das Menü anzuzeigen

Bei einer Vorhersage für ein binäres Klassifikationsproblem gibt es nur vier mögliche Ergebnisse:

Im obigen Bild sind die tatsächlichen Werte (wahre Labels) von oben nach unten in absteigender Reihenfolge angeordnet, während die vorhergesagten Werte von links nach rechts in aufsteigender Reihenfolge dargestellt werden. Dies ist das Standardlayout, das von scikit-learn beim Anzeigen von Konfusionsmatrizen verwendet wird.

Note
Hinweis

Verschiedene Bibliotheken oder Visualisierungen können eine andere Anordnung verwenden – zum Beispiel die tatsächlichen Werte auf der x-Achse und die vorhergesagten Werte auf der y-Achse platzieren. Der einzige Unterschied besteht jedoch im Layout; die Werte in der Matrix bleiben gleich.

Diese Ergebnisse werden als True Positive (TP), True Negative (TN), False Positive (FP) und False Negative (FN) bezeichnet. "True" oder "False" gibt an, ob die Vorhersage korrekt ist, während sich "Positive" oder "Negative" darauf bezieht, ob die vorhergesagte Klasse 1 oder 0 ist.

Das bedeutet, es gibt zwei Arten von Fehlern, die auftreten können: False Positives und False Negatives. Eine False-Positive-Vorhersage wird auch als Fehler 1. Art bezeichnet, während eine False-Negative-Vorhersage als Fehler 2. Art bezeichnet wird.

Konfusionsmatrix

Die erste Möglichkeit, die Leistung des Modells zu betrachten, besteht darin, die Vorhersagen in einer Konfusionsmatrix wie folgt zu organisieren:

Eine Konfusionsmatrix kann in Python mit der Funktion confusion_matrix() aus sklearn erstellt werden:

from sklearn.metrics import confusion_matrix

conf_matrix = confusion_matrix(y_true, y_pred)

Für eine bessere Visualisierung kann die Funktion heatmap() aus seaborn verwendet werden:

sns.heatmap(conf_matrix)

Hier ist ein Beispiel, wie die Konfusionsmatrix für eine Random-Forest-Vorhersage auf dem Titanic-Datensatz berechnet wird:

12345678910111213141516
import pandas as pd import seaborn as sns from sklearn.metrics import confusion_matrix from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split # Read the data and assign the variables df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/titanic.csv') X, y = df.drop('Survived', axis=1), df['Survived'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1) # Build and train a Random Forest and predict target for a test set random_forest = RandomForestClassifier().fit(X_train, y_train) y_pred = random_forest.predict(X_test) # Build a confusion matrix conf_matrix = confusion_matrix(y_test, y_pred) sns.heatmap(conf_matrix, annot=True);
copy

Es ist auch möglich, anstelle der Instanzanzahlen die Prozentsätze darzustellen, indem der Parameter normalize verwendet wird:

conf_matrix = confusion_matrix(y_true, y_pred, normalize='all')
12345678910111213141516
import pandas as pd import seaborn as sns from sklearn.metrics import confusion_matrix from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split # Read the data and assign the variables df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/titanic.csv') X, y = df.drop('Survived', axis=1), df['Survived'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1) # Build and train a Random Forest and predict target for a test set random_forest = RandomForestClassifier().fit(X_train, y_train) y_pred = random_forest.predict(X_test) # Build a confusion matrix conf_matrix = confusion_matrix(y_test, y_pred, normalize='all') sns.heatmap(conf_matrix, annot=True);
copy
question mark

Was ist der Zweck einer Konfusionsmatrix?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 1
some-alt