Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Modelbewertung | Neural Network von Grund Auf
Einführung in Neuronale Netze

bookModelbewertung

Aufteilen der Daten

Nach dem Training eines neuronalen Netzes ist es entscheidend, die Leistung auf unbekannten Daten zu bewerten. Diese Bewertung zeigt, ob das Modell sinnvolle Muster gelernt hat oder lediglich die Trainingsbeispiele auswendig gelernt hat. Dazu wird der Datensatz in zwei Teile aufgeteilt:

  • Trainingssatz — dient dazu, das neuronale Netz durch Anpassung der Gewichte und Biases mittels Backpropagation zu trainieren;
  • Testsatz — wird nach dem Training verwendet, um zu bewerten, wie gut das Modell auf neue, unbekannte Daten generalisiert.

Eine übliche Aufteilung ist 80 % für das Training und 20 % für das Testen, wobei dieses Verhältnis je nach Größe und Komplexität des Datensatzes variieren kann.

Die Aufteilung der Daten erfolgt typischerweise mit der Funktion train_test_split() aus dem Modul sklearn.model_selection:

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=...)

Der Parameter test_size bestimmt den Anteil der Daten, der für das Testen reserviert wird. Beispielsweise bedeutet test_size=0.1, dass 10 % der Daten für das Testen und 90 % für das Training verwendet werden.

Erzielt das Modell auf dem Trainingssatz gute, aber auf dem Testsatz schlechte Ergebnisse, liegt möglicherweise ein Overfitting vor — das Modell lernt Muster, die zu spezifisch für die Trainingsdaten sind, anstatt auf neue Beispiele zu generalisieren. Ziel ist es, gute Leistung auf beiden Datensätzen zu erreichen, damit das Modell gut generalisiert.

Nach der Aufteilung der Daten und dem Training des Modells sollte die Leistung mit geeigneten Bewertungsmetriken gemessen werden, die von der jeweiligen Klassifikationsaufgabe abhängen.

Klassifikationsmetriken

Für Klassifikationsprobleme können verschiedene wichtige Metriken zur Bewertung der Modellvorhersagen verwendet werden:

  • Genauigkeit;
  • Präzision;
  • Recall (Sensitivität);
  • F1-Score.

Da ein Perzeptron eine binäre Klassifikation durchführt, hilft die Erstellung einer Konfusionsmatrix, diese Metriken besser zu verstehen.

Note
Definition

Eine Konfusionsmatrix ist eine Tabelle, die die Klassifikationsleistung des Modells zusammenfasst, indem sie die vorhergesagten Labels mit den tatsächlichen Labels vergleicht. Sie liefert Einblicke in die Anzahl der korrekten und inkorrekten Vorhersagen für jede Klasse (1 und 0).

Genauigkeit misst den Anteil der korrekt klassifizierten Beispiele an der Gesamtzahl. Wenn ein Modell 90 von 100 Bildern korrekt klassifiziert, beträgt die Genauigkeit 90%.

accuracy=correctall=TP+TNTP+TN+FP+FN\text{accuracy} = \frac {\text{correct}} {\text{all}} = \frac {TP + TN} {TP + TN + FP + FN}

Obwohl die Genauigkeit nützlich ist, liefert sie nicht immer ein vollständiges Bild—insbesondere bei unausgewogenen Datensätzen. In einem Datensatz, in dem 95% der Beispiele zu einer Klasse gehören, könnte ein Modell 95% Genauigkeit erreichen, indem es immer die Mehrheitsklasse vorhersagt—ohne tatsächlich etwas Nützliches zu lernen. In solchen Fällen sind Präzision, Recall oder der F1-Score oft aussagekräftiger.

Präzision ist der Prozentsatz der korrekt vorhergesagten positiven Fälle an allen vorhergesagten Positiven. Diese Kennzahl ist besonders relevant, wenn falsch-positive Ergebnisse kostspielig sind, wie etwa bei Spam-Erkennung oder Betrugserkennung.

precision=correct positivepredicted positive=TPTP+FP\text{precision} = \frac {\text{correct positive}} {\text{predicted positive}} = \frac {TP} {TP + FP}

Recall (Sensitivität) misst, wie viele der tatsächlich positiven Fälle vom Modell korrekt erkannt werden. Ein hoher Recall ist entscheidend in Situationen, in denen falsch-negative Ergebnisse minimiert werden müssen, wie beispielsweise bei medizinischen Diagnosen.

recall=correct positiveall positive=TPTP+FN\text{recall} = \frac {\text{correct positive}} {\text{all positive}} = \frac {TP} {TP + FN}

F1-Score ist das harmonische Mittel von Präzision und Recall und bietet eine ausgewogene Kennzahl, wenn sowohl falsch-positive als auch falsch-negative Ergebnisse relevant sind. Dies ist besonders nützlich bei unausgeglichenen Datensätzen, bei denen eine Klasse deutlich häufiger als die andere auftritt.

F1=2×precision×recallprecision+recall\text{F1} = \frac {2 \times \text{precision} \times \text{recall}} {\text{precision} + \text{recall}}

1. Was ist der Hauptzweck der Aufteilung eines Datensatzes in Trainings- und Testdaten?

2. Warum könnte der F1-Score bei einem unausgeglichenen Datensatz der Genauigkeit vorgezogen werden?

question mark

Was ist der Hauptzweck der Aufteilung eines Datensatzes in Trainings- und Testdaten?

Select the correct answer

question mark

Warum könnte der F1-Score bei einem unausgeglichenen Datensatz der Genauigkeit vorgezogen werden?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 11

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

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

Awesome!

Completion rate improved to 4

bookModelbewertung

Swipe um das Menü anzuzeigen

Aufteilen der Daten

Nach dem Training eines neuronalen Netzes ist es entscheidend, die Leistung auf unbekannten Daten zu bewerten. Diese Bewertung zeigt, ob das Modell sinnvolle Muster gelernt hat oder lediglich die Trainingsbeispiele auswendig gelernt hat. Dazu wird der Datensatz in zwei Teile aufgeteilt:

  • Trainingssatz — dient dazu, das neuronale Netz durch Anpassung der Gewichte und Biases mittels Backpropagation zu trainieren;
  • Testsatz — wird nach dem Training verwendet, um zu bewerten, wie gut das Modell auf neue, unbekannte Daten generalisiert.

Eine übliche Aufteilung ist 80 % für das Training und 20 % für das Testen, wobei dieses Verhältnis je nach Größe und Komplexität des Datensatzes variieren kann.

Die Aufteilung der Daten erfolgt typischerweise mit der Funktion train_test_split() aus dem Modul sklearn.model_selection:

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=...)

Der Parameter test_size bestimmt den Anteil der Daten, der für das Testen reserviert wird. Beispielsweise bedeutet test_size=0.1, dass 10 % der Daten für das Testen und 90 % für das Training verwendet werden.

Erzielt das Modell auf dem Trainingssatz gute, aber auf dem Testsatz schlechte Ergebnisse, liegt möglicherweise ein Overfitting vor — das Modell lernt Muster, die zu spezifisch für die Trainingsdaten sind, anstatt auf neue Beispiele zu generalisieren. Ziel ist es, gute Leistung auf beiden Datensätzen zu erreichen, damit das Modell gut generalisiert.

Nach der Aufteilung der Daten und dem Training des Modells sollte die Leistung mit geeigneten Bewertungsmetriken gemessen werden, die von der jeweiligen Klassifikationsaufgabe abhängen.

Klassifikationsmetriken

Für Klassifikationsprobleme können verschiedene wichtige Metriken zur Bewertung der Modellvorhersagen verwendet werden:

  • Genauigkeit;
  • Präzision;
  • Recall (Sensitivität);
  • F1-Score.

Da ein Perzeptron eine binäre Klassifikation durchführt, hilft die Erstellung einer Konfusionsmatrix, diese Metriken besser zu verstehen.

Note
Definition

Eine Konfusionsmatrix ist eine Tabelle, die die Klassifikationsleistung des Modells zusammenfasst, indem sie die vorhergesagten Labels mit den tatsächlichen Labels vergleicht. Sie liefert Einblicke in die Anzahl der korrekten und inkorrekten Vorhersagen für jede Klasse (1 und 0).

Genauigkeit misst den Anteil der korrekt klassifizierten Beispiele an der Gesamtzahl. Wenn ein Modell 90 von 100 Bildern korrekt klassifiziert, beträgt die Genauigkeit 90%.

accuracy=correctall=TP+TNTP+TN+FP+FN\text{accuracy} = \frac {\text{correct}} {\text{all}} = \frac {TP + TN} {TP + TN + FP + FN}

Obwohl die Genauigkeit nützlich ist, liefert sie nicht immer ein vollständiges Bild—insbesondere bei unausgewogenen Datensätzen. In einem Datensatz, in dem 95% der Beispiele zu einer Klasse gehören, könnte ein Modell 95% Genauigkeit erreichen, indem es immer die Mehrheitsklasse vorhersagt—ohne tatsächlich etwas Nützliches zu lernen. In solchen Fällen sind Präzision, Recall oder der F1-Score oft aussagekräftiger.

Präzision ist der Prozentsatz der korrekt vorhergesagten positiven Fälle an allen vorhergesagten Positiven. Diese Kennzahl ist besonders relevant, wenn falsch-positive Ergebnisse kostspielig sind, wie etwa bei Spam-Erkennung oder Betrugserkennung.

precision=correct positivepredicted positive=TPTP+FP\text{precision} = \frac {\text{correct positive}} {\text{predicted positive}} = \frac {TP} {TP + FP}

Recall (Sensitivität) misst, wie viele der tatsächlich positiven Fälle vom Modell korrekt erkannt werden. Ein hoher Recall ist entscheidend in Situationen, in denen falsch-negative Ergebnisse minimiert werden müssen, wie beispielsweise bei medizinischen Diagnosen.

recall=correct positiveall positive=TPTP+FN\text{recall} = \frac {\text{correct positive}} {\text{all positive}} = \frac {TP} {TP + FN}

F1-Score ist das harmonische Mittel von Präzision und Recall und bietet eine ausgewogene Kennzahl, wenn sowohl falsch-positive als auch falsch-negative Ergebnisse relevant sind. Dies ist besonders nützlich bei unausgeglichenen Datensätzen, bei denen eine Klasse deutlich häufiger als die andere auftritt.

F1=2×precision×recallprecision+recall\text{F1} = \frac {2 \times \text{precision} \times \text{recall}} {\text{precision} + \text{recall}}

1. Was ist der Hauptzweck der Aufteilung eines Datensatzes in Trainings- und Testdaten?

2. Warum könnte der F1-Score bei einem unausgeglichenen Datensatz der Genauigkeit vorgezogen werden?

question mark

Was ist der Hauptzweck der Aufteilung eines Datensatzes in Trainings- und Testdaten?

Select the correct answer

question mark

Warum könnte der F1-Score bei einem unausgeglichenen Datensatz der Genauigkeit vorgezogen werden?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 11
some-alt