Das Entdecken von Scikit-Learn SGD-Klassifizierern

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 stochastischen Gradientenabstieg (SGD) untersuchen, ein leistungsstarkes Optimierungsverfahren, das in der Maschinellen Lernen häufig zur Lösung von großskaligen und dünn besetzten Problemen verwendet wird. Wir werden lernen, wie man die Klassen SGDClassifier und SGDRegressor aus der scikit-learn-Bibliothek verwendet, um lineare Klassifizierer und Regressoren zu trainieren.

VM-Tipps

Nachdem die VM gestartet 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/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) sklearn(("Sklearn")) -.-> sklearn/DataPreprocessingandFeatureEngineeringGroup(["Data Preprocessing and Feature Engineering"]) sklearn(("Sklearn")) -.-> sklearn/ModelSelectionandEvaluationGroup(["Model Selection and Evaluation"]) sklearn(("Sklearn")) -.-> sklearn/UtilitiesandDatasetsGroup(["Utilities and Datasets"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/linear_model("Linear Models") sklearn/DataPreprocessingandFeatureEngineeringGroup -.-> sklearn/preprocessing("Preprocessing and Normalization") sklearn/ModelSelectionandEvaluationGroup -.-> sklearn/model_selection("Model Selection") sklearn/ModelSelectionandEvaluationGroup -.-> sklearn/metrics("Metrics") sklearn/UtilitiesandDatasetsGroup -.-> sklearn/datasets("Datasets") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/linear_model -.-> lab-71100{{"Das Entdecken von Scikit-Learn SGD-Klassifizierern"}} sklearn/preprocessing -.-> lab-71100{{"Das Entdecken von Scikit-Learn SGD-Klassifizierern"}} sklearn/model_selection -.-> lab-71100{{"Das Entdecken von Scikit-Learn SGD-Klassifizierern"}} sklearn/metrics -.-> lab-71100{{"Das Entdecken von Scikit-Learn SGD-Klassifizierern"}} sklearn/datasets -.-> lab-71100{{"Das Entdecken von Scikit-Learn SGD-Klassifizierern"}} ml/sklearn -.-> lab-71100{{"Das Entdecken von Scikit-Learn SGD-Klassifizierern"}} end

Importieren der erforderlichen Bibliotheken

Zunächst müssen wir die erforderlichen Bibliotheken importieren. Wir werden die scikit-learn-Bibliothek für die maschinelle Lernung und die Datenaufbereitung verwenden.

import numpy as np
from sklearn.datasets import load_iris
from sklearn.linear_model import SGDClassifier, SGDRegressor
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, mean_squared_error

Laden und Aufbereiten der Daten

Als nächstes laden wir den Iris-Datensatz und bereiten ihn durch Skalierung der Merkmale mit StandardScaler auf.

## Load the iris dataset
iris = load_iris()
X, y = iris.data, iris.target

## Scale the features
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

## Split the data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)

Trainieren eines Klassifiziers mit SGD

Jetzt werden wir einen Klassifizierer mit der SGDClassifier-Klasse trainieren. Wir werden die log_loss-Verlustfunktion und die l2-Strafe verwenden.

## Train a classifier using SGD
clf = SGDClassifier(loss="log_loss", penalty="l2", max_iter=100, random_state=42)
clf.fit(X_train, y_train)

## Make predictions on the testing set
y_pred = clf.predict(X_test)

## Measure the accuracy of the classifier
accuracy = accuracy_score(y_test, y_pred)

## Print the accuracy
print("Classifier Accuracy:", accuracy)

Trainieren eines Regressors mit SGD

Als nächstes werden wir einen Regressor mit der SGDRegressor-Klasse trainieren. Wir werden die squared_error-Verlustfunktion und die l2-Strafe verwenden.

## Train a regressor using SGD
reg = SGDRegressor(loss="squared_error", penalty="l2", max_iter=100, random_state=42)
reg.fit(X_train, y_train)

## Make predictions on the testing set
y_pred = reg.predict(X_test)

## Measure the mean squared error of the regressor
mse = mean_squared_error(y_test, y_pred)

## Print the mean squared error
print("Regressor Mean Squared Error:", mse)

Zusammenfassung

In diesem Lab haben wir gelernt, wie man Stochastic Gradient Descent (SGD) mit der scikit-learn-Bibliothek zum Trainieren von linearen Klassifizierern und Regressoren verwendet. Wir haben einen Klassifizierer auf dem Iris-Datensatz trainiert und seine Genauigkeit gemessen, und wir haben einen Regressor trainiert und seinen mittleren quadratischen Fehler gemessen. SGD ist ein leistungsstarkes Optimierungsalgorithmus, der große und dünn besetzte maschinelle Lernprobleme effizient behandeln kann.