Die Kreuzvalidierung hilft bei der Bewertung von Modellen des maschinellen Lernens. Diese statistische Methode hilft beim Vergleich und der Auswahl des Modells im angewandten maschinellen Lernen. Das Verständnis und die Implementierung dieses prädiktiven Modellierungsproblems ist einfach und geradlinig. Diese Technik hat eine geringere Verzerrung beim Schätzen der Fähigkeiten des Modells. Dieser Artikel wird Ihnen helfen, das Konzept der k-fachen Kreuzvalidierung zu verstehen und wie Sie ein Modell für maschinelles Lernen mithilfe dieser Technik bewerten können.

K-Fold-Kreuzvalidierung

Die k-fache Kreuzvalidierung bedeutet, dass der Datensatz in eine Anzahl K aufgeteilt wird. Sie unterteilt den Datensatz an dem Punkt, an dem der Testsatz jede Falte verwendet. Lassen Sie uns das Konzept mit Hilfe der 5-fachen Kreuzvalidierung oder K+5 verstehen. In diesem Szenario teilt die Methode den Datensatz in fünf Faltungen auf. Das Modell verwendet den ersten Fold in der ersten Iteration zum Testen des Modells. Es verwendet die restlichen Datensätze zum Trainieren des Modells. Die zweite Falte hilft beim Testen des Datensatzes und die anderen unterstützen den Trainingsprozess. Der gleiche Prozess wiederholt sich, bis der Testdatensatz jeden Fold aus den fünf Folds verwendet.

K-Fold-Kreuzvalidierung beim maschinellen Lernen

Neben den zahlreichen Vorteilen der Algorithmen des maschinellen Lernens folgt das Modell demselben Modell, um die Daten mit diskreten oder kontinuierlichen Werten vorherzusagen und zu erzeugen. Es ist wichtig, sicherzustellen, dass die Daten des Modells genau sind und nicht unter- oder überangepasst werden. Underfitting und Overfitting sind zwei wichtige Begriffe des maschinellen Lernens. Diese Begriffe definieren, wie gut ein Modell trainiert ist, um Daten vorherzusagen. Um die Leistung und das Verhalten des Algorithmus zu überprüfen, beinhaltet das Overfitting einen Hyperparameterwert.

-Unterfitting beim maschinellen Lernen

Das Modell kann genaue Vorhersagen mit neuen Daten generieren, wenn das Modell entsprechend dem Datensatz perfekt passt. Ein geeigneter Algorithmus für den trainierten Datensatz kann beim Training des neuen Datensatzes helfen. Wenn sich das Modell für maschinelles Lernen jedoch auf einen unpassenden Trainingsprozess stützt, wird es keine genauen Daten oder adäquate Vorhersagen generieren. Daher wird das Modell nicht in der Lage sein, wichtige Muster aus Datensätzen zu verarbeiten.
Wenn das Modell während des Trainingsprozesses stehen bleibt, führt dies zu Underfitting. Dies zeigt an, dass die Daten mehr Zeit benötigen, um vollständig verarbeitet zu werden. Dies beeinträchtigt die Leistung des Modells für neue Daten. Das Modell wird keine genauen Ergebnisse liefern und ist unbrauchbar.

-Overfitting beim maschinellen Lernen

Overfitting ist einfach das Gegenteil von Underfitting. Das bedeutet, dass das Modell nicht nur die Daten lernt und das Muster extrahiert, sondern auch mehr lernt, als es kann. Dieser Zustand deutet darauf hin, dass die Daten Rauschen aufnehmen, was dazu führt, dass das Modell für neue Daten verallgemeinert wird. Das Rauschen sind die irrelevanten Daten, die die Ausgabe der Vorhersage beeinflussen, während sie auf neue Daten treffen.

Evaluieren eines ML-Modells mit K-Fold Cross-Validation

Im Folgenden wird das einfache Regressionsmodell mit Hilfe der K-fachen Kreuzvalidierung ausgewertet. In diesem Beispiel wird eine 10-fache Kreuzvalidierung durchgeführt.

Importieren von Bibliotheken

Der erste Schritt besteht darin, alle Bibliotheken zu importieren, die Sie benötigen, um diese Kreuzvalidierungstechnik für ein einfaches maschinelles Lernmodell durchzuführen.
importieren Sie pandas
from sklearn.model_selection import KFold
from sklearn.preprocessing import MinMaxScaler
von sklearn.svm importieren SVR
import NumPy as np
Diese Bibliotheken helfen bei der Durchführung verschiedener Aufgaben:

  • Numpy -Hilft Ihnen, wissenschaftliche Berechnungen durchzuführen
  • Pandas -Hilft bei der einfachen Manipulation der Datenstruktur.
  • Sklearn-Ist eine Bibliothek für maschinelles Lernen, die Sie für Python verwenden können.

Einlesen des Datensatzes

Jetzt lesen Sie den Datensatz, den Sie verwenden werden. Wir werden pandas verwenden, um den Datenrahmen zu strukturieren.
dataset = pandas.read_csv(‘housing.csv’)

Vorverarbeitung

Identifizieren Sie die Ausgabevariablen und die Merkmale unseres Datensatzes.
X = datensatz.iloc[:, [0, 12]]
y = datensatz.iloc[:, 13]
Gemäß dem obigen Code sind alle Zeilen von 0 bis 12 die Merkmale und der Index 13 in der Spalte ist die abhängige Variable oder die Ausgabe des Modells. Jetzt können wir die Vorverarbeitungsmethode anwenden. Diese MinMax-Skalierungstechnik wird den Datensatz normalisieren.
skalierer = MinMaxSkalierer(merkmal_bereich=(0, 1))
X = scaler.fit_transform(X)
Mit Hilfe dieser Technik können Sie die Daten in einem bestimmten Bereich neu skalieren. In diesem Beispiel würde der Bereich zwischen 0 und 1 liegen. Dies wird uns helfen zu verstehen, dass verschiedene Merkmale die endgültige Vorhersage nicht beeinflussen.

K-Fold CV

Nun starten wir den Validierungsprozess mit den folgenden Codes:
scores = []
best_svr = SVR(kernel=’rbf’)
cv = KFold(n_splits=10, random_state=42, shuffle=False)
for train_index, test_index in cv.split(X):
print(“Train Index: “, train_index, “\n”)
print(“Test Index: “, test_index)

X_train, X_test, y_train, y_test = X[train_index], X[test_index], y[train_index], y[test_index]
best_svr.fit(X_train, y_train)
scores.append(best_svr.score(X_test, y_test))

Fazit

Die K-fache Kreuzvalidierung verbessert das Modell durch Validierung der Daten. Diese Technik stellt sicher, dass der Score des Modells nicht von der Technik abhängt, die wir zur Auswahl des Test- oder Trainingsdatensatzes verwenden. Die Methode der K-fachen Kreuzvalidierung unterteilt den Datensatz in Teilmengen mit der Anzahl K. Daher wird die Überprüfungsmethode k-mal wiederholt.