Eine kurze einführung in die leave-one-out-kreuzvalidierung (loocv)


Um die Leistung eines Modells anhand eines Datensatzes zu bewerten, müssen wir messen, wie gut die vom Modell gemachten Vorhersagen mit den beobachteten Daten übereinstimmen.

Die gebräuchlichste Methode zur Messung ist die Verwendung des mittleren quadratischen Fehlers (MSE), der wie folgt berechnet wird:

MSE = (1/n)*Σ(y i – f(x i )) 2

Gold:

  • n: Gesamtzahl der Beobachtungen
  • y i : Der Antwortwert der i-ten Beobachtung
  • f( xi ): Der vorhergesagte Antwortwert der i- ten Beobachtung

Je näher die Modellvorhersagen an den Beobachtungen liegen, desto niedriger ist der MSE.

In der Praxis verwenden wir den folgenden Prozess, um den MSE eines bestimmten Modells zu berechnen:

1. Teilen Sie einen Datensatz in einen Trainingssatz und einen Testsatz auf.

Schulung und Tests zum maschinellen Lernen

2. Erstellen Sie das Modell nur unter Verwendung der Daten aus dem Trainingssatz.

LOOCV im maschinellen Lernen

3. Verwenden Sie das Modell, um Vorhersagen über den Testsatz zu treffen und den MSE zu messen – dies wird als Test-MSE bezeichnet. Trainings- oder Testset

MSE-Tests geben uns eine Vorstellung davon, wie gut ein Modell mit Daten funktioniert, die es zuvor noch nicht gesehen hat, also mit Daten, die nicht zum „Training“ des Modells verwendet wurden.

Der Nachteil der Verwendung eines einzelnen Testsatzes besteht jedoch darin, dass der MSE-Test je nach den in den Trainings- und Testsätzen verwendeten Beobachtungen erheblich variieren kann.

Es ist möglich, dass unser Test-MSE viel größer oder kleiner ausfällt, wenn wir unterschiedliche Beobachtungssätze für den Trainingssatz und den Testsatz verwenden.

Eine Möglichkeit, dieses Problem zu vermeiden, besteht darin, ein Modell mehrmals mit jeweils einem anderen Trainings- und Testsatz anzupassen und dann den Test-MSE als Durchschnitt aller Test-MSE zu berechnen.

Diese allgemeine Methode wird als Kreuzvalidierung bezeichnet und eine spezielle Form davon ist als Leave-One-Out-Kreuzvalidierung bekannt.

Leave-One-Out-Kreuzvalidierung

Die einmalige Kreuzvalidierung verwendet den folgenden Ansatz zur Bewertung eines Modells:

1. Teilen Sie einen Datensatz in einen Trainingssatz und einen Testsatz auf und verwenden Sie dabei alle Beobachtungen bis auf eine als Teil des Trainingssatzes:

LOOCV

Beachten Sie, dass wir nur eine Beobachtung „außerhalb“ des Trainingssatzes belassen. Daher erhält die Methode den Namen „Leave-one-out“-Kreuzvalidierung.

2. Erstellen Sie das Modell nur unter Verwendung der Daten aus dem Trainingssatz.

Erstellen eines Modells mit dem LOOCV-Ansatz

3. Verwenden Sie das Modell, um den Antwortwert der einzelnen, aus dem Modell ausgeschlossenen Beobachtung vorherzusagen und den MSE zu berechnen.

Einfache Kreuzvalidierung

4. Wiederholen Sie den Vorgang n -mal.

Schließlich wiederholen wir diesen Vorgang n -mal (wobei n die Gesamtzahl der Beobachtungen im Datensatz ist) und lassen jedes Mal eine andere Beobachtung aus dem Trainingssatz weg.

Anschließend berechnen wir den Test-MSE als Durchschnitt aller Test-MSEs:

MSE-Test = (1/n)*ΣMSE i

Gold:

  • n: die Gesamtzahl der Beobachtungen im Datensatz
  • MSEi: der MSE-Test während der i-ten Modellanpassungsphase.

Vor- und Nachteile von LOOCV

Die einmalige Kreuzvalidierung bietet die folgenden Vorteile :

  • Im Vergleich zur Verwendung eines einzelnen Testsatzes liefert es ein viel weniger verzerrtes Maß für den MSE-Test, da wir ein Modell wiederholt an einen Datensatz mit n-1 Beobachtungen anpassen.
  • Der MSE des Tests wird im Vergleich zur Verwendung eines einzelnen Testsatzes tendenziell nicht überschätzt.

Die praktische Kreuzvalidierung hat jedoch die folgenden Nachteile:

  • Die Verwendung dieses Prozesses kann lange dauern, wenn n groß ist.
  • Es kann auch zeitaufwändig sein, wenn ein Modell besonders komplex ist und die Anpassung an einen Datensatz lange dauert.
  • Dies kann rechenintensiv sein.

Glücklicherweise ist die moderne Datenverarbeitung in den meisten Bereichen so effizient geworden, dass LOOCV eine viel sinnvollere Methode ist als noch vor vielen Jahren.

Beachten Sie, dass LOOCV auch in Regressions- und Klassifizierungskontexten verwendet werden kann. Bei Regressionsproblemen berechnet es den MSE-Test als den quadratischen Mittelwert der Differenz zwischen Vorhersagen und Beobachtungen, während es bei Klassifizierungsproblemen den MSE-Test als Prozentsatz der über die n wiederholten Anpassungen des Modells korrekt klassifizierten Beobachtungen berechnet.

So führen Sie LOOCV in R und Python aus

Die folgenden Tutorials bieten Schritt-für-Schritt-Beispiele zum Ausführen von LOOCV für ein bestimmtes Modell in R und Python:

Leave-One-Out-Kreuzvalidierung in R
Leave-One-Out-Kreuzvalidierung in Python

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert