Maschinelles Lernen mit Kreuzvalidierung in Python

Machine LearningMachine LearningBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Beim maschinellen Lernen ist die Kreuzvalidierung eine Technik, die verwendet wird, um die Leistung eines Modells auf einem unabhängigen Datensatz zu evaluieren. Sie hilft, das Überanpassen zu vermeiden, indem sie eine bessere Einschätzung darüber gibt, wie gut das Modell auf neue, bisher nicht gesehenen Daten generalisieren wird.

In diesem Lab werden wir das Konzept der Kreuzvalidierung und die Implementierung mit der scikit-learn-Bibliothek in Python untersuchen.

Tipps für die VM

Nachdem der VM-Start abgeschlossen ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu nutzen.

Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund der Einschränkungen von Jupyter Notebook nicht automatisiert werden.

Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback ab, und wir werden das Problem für Sie prompt beheben.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/ModelSelectionandEvaluationGroup(["Model Selection and Evaluation"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/ModelSelectionandEvaluationGroup -.-> sklearn/model_selection("Model Selection") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/model_selection -.-> lab-71122{{"Maschinelles Lernen mit Kreuzvalidierung in Python"}} ml/sklearn -.-> lab-71122{{"Maschinelles Lernen mit Kreuzvalidierung in Python"}} end

Importieren der erforderlichen Bibliotheken

Zunächst importieren wir die erforderlichen Bibliotheken für dieses Lab.

import numpy as np
from sklearn.model_selection import train_test_split
from sklearn import datasets
from sklearn import svm

Laden des Datensatzes

Als nächstes laden wir einen Datensatz, um unser Modell zu trainieren. In diesem Beispiel verwenden wir den Iris-Datensatz, der ein populärer Datensatz für Klassifizierungstasks ist.

X, y = datasets.load_iris(return_X_y=True)

Teilen des Datensatzes in Trainings- und Testsets

Um die Leistung unseres Modells zu evaluieren, müssen wir den Datensatz in ein Trainingsset und ein Testset aufteilen. Wir werden die train_test_split-Funktion aus der scikit-learn-Bibliothek verwenden, um dies zu tun.

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4, random_state=0)

Trainieren und Evaluieren des Modells

Lassen Sie uns nun einen Support-Vector-Machine (SVM)-Classifier auf dem Trainingsset trainieren und seine Leistung auf dem Testset evaluieren.

clf = svm.SVC(kernel='linear', C=1).fit(X_train, y_train)
score = clf.score(X_test, y_test)
print("Accuracy: ", score)

Zusammenfassung

In diesem Lab haben wir gelernt, wie man Kreuzvalidierung mit der scikit-learn-Bibliothek in Python implementiert. Wir haben den Datensatz in Trainings- und Testsets aufgeteilt, ein Modell auf dem Trainingsset trainiert und seine Leistung auf dem Testset ausgewertet. Die Kreuzvalidierung hilft dabei, Overfitting zu vermeiden und liefert eine bessere Abschätzung davon, wie gut ein Modell auf neue, bisher nicht gesehenen Daten generalisieren wird.