Digit Dataset Analysis

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

In diesem Lab werden wir den scikit-learn digits-Datensatz untersuchen. Dieser Datensatz besteht aus 1797 8x8-Pixel-Bildern, wobei jedes Bild eine handschriftliche Zahl von 0-9 darstellt. Unser Ziel ist es, diesen Datensatz zu analysieren und zu verstehen, wie wir ihn nutzen können, um handschriftliche Zahlen mit maschinellen Lernalgorithmen zu klassifizieren.

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 von Einschränkungen in Jupyter Notebook nicht automatisiert werden.

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) sklearn(("Sklearn")) -.-> sklearn/ModelSelectionandEvaluationGroup(["Model Selection and Evaluation"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/svm("Support Vector Machines") sklearn/ModelSelectionandEvaluationGroup -.-> sklearn/model_selection("Model Selection") sklearn/ModelSelectionandEvaluationGroup -.-> sklearn/metrics("Metrics") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/svm -.-> lab-49110{{"Digit Dataset Analysis"}} sklearn/model_selection -.-> lab-49110{{"Digit Dataset Analysis"}} sklearn/metrics -.-> lab-49110{{"Digit Dataset Analysis"}} ml/sklearn -.-> lab-49110{{"Digit Dataset Analysis"}} end

Das Dataset importieren

Der erste Schritt besteht darin, das digits-Dataset aus scikit-learn mit dem folgenden Code zu importieren:

from sklearn import datasets

## Lade das digits-Dataset
digits = datasets.load_digits()

Visualisierung des Datasets

Um das Dataset besser zu verstehen, können wir ein Beispielbild mit matplotlib visualisieren. Der folgende Code zeigt die letzte Zahl im Dataset an:

import matplotlib.pyplot as plt

## Zeige die letzte Zahl an
plt.figure(1, figsize=(3, 3))
plt.imshow(digits.images[-1], cmap=plt.cm.gray_r, interpolation="nearest")
plt.show()

Vorbereitung des Datasets für maschinelles Lernen

Bevor wir ein maschinelles Lernmodell auf dem Dataset trainieren können, müssen wir die Daten vorbereiten, indem wir sie in Trainings- und Testsets unterteilen. Wir können dies mit der train_test_split-Funktion von scikit-learn tun:

from sklearn.model_selection import train_test_split

## Teilen Sie das Dataset in Trainings- und Testsets auf
X_train, X_test, y_train, y_test = train_test_split(digits.data, digits.target, test_size=0.2, random_state=42)

Training eines maschinellen Lernmodells

Jetzt, nachdem wir das Dataset vorbereitet haben, können wir ein maschinelles Lernmodell auf den Trainingsdaten trainieren. In diesem Beispiel werden wir einen Support Vector Machine (SVM)-Algorithmus verwenden:

from sklearn.svm import SVC

## Erstellen Sie den SVM-Klassifizierer
clf = SVC(kernel='linear')

## Trainieren Sie den Klassifizierer auf den Trainingsdaten
clf.fit(X_train, y_train)

Bewertung des Modells

Um die Leistung unseres Modells zu bewerten, können wir die accuracy_score-Funktion von scikit-learn verwenden:

from sklearn.metrics import accuracy_score

## Vorhersagen der Labels des Testsets
y_pred = clf.predict(X_test)

## Berechnung der Genauigkeit des Modells
accuracy = accuracy_score(y_test, y_pred)

## Ausgabe der Genauigkeit des Modells
print("Genauigkeit:", accuracy)

Verbesserung des Modells

Wenn die Genauigkeit unseres Modells nicht zufriedenstellend ist, können wir versuchen, es zu verbessern, indem wir die Hyperparameter des SVM-Algorithmus optimieren. Beispielsweise können wir versuchen, den Wert des Parameters C zu ändern:

## Erstellen Sie den SVM-Klassifizierer mit einem anderen Wert von C
clf = SVC(kernel='linear', C=0.1)

## Trainieren Sie den Klassifizierer auf den Trainingsdaten
clf.fit(X_train, y_train)

## Vorhersagen der Labels des Testsets
y_pred = clf.predict(X_test)

## Berechnung der Genauigkeit des Modells
accuracy = accuracy_score(y_test, y_pred)

## Ausgabe der Genauigkeit des Modells
print("Genauigkeit:", accuracy)

Zusammenfassung

In diesem Lab haben wir den scikit-learn digits-Datensatz untersucht und gelernt, wie man ein maschinelles Lernmodell zum Klassifizieren von handschriftlichen Ziffern trainiert. Wir haben auch gelernt, wie man die Leistung des Modells bewertet und wie man es durch Optimieren der Hyperparameter des Algorithmus verbessert. Dieser Datensatz ist eine großartige Ressource für alle, die an der Erlernung von maschinellen Lernklassifizierungsalgorithmen interessiert sind.