Explorando los clasificadores SGD de Scikit-Learn

Machine LearningMachine LearningBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, exploraremos el Descenso de Gradiente Estocástico (Stochastic Gradient Descent - SGD), que es un algoritmo de optimización poderoso comúnmente utilizado en el aprendizaje automático para resolver problemas a gran escala y dispersos. Aprenderemos cómo utilizar las clases SGDClassifier y SGDRegressor de la biblioteca scikit-learn para entrenar clasificadores y regresores lineales.

Consejos sobre la VM

Una vez que se haya completado la inicialización de la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje sus comentarios después de la sesión y lo resolveremos rápidamente para usted.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/ModelSelectionandEvaluationGroup(["Model Selection and Evaluation"]) sklearn(("Sklearn")) -.-> sklearn/UtilitiesandDatasetsGroup(["Utilities and Datasets"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) sklearn(("Sklearn")) -.-> sklearn/DataPreprocessingandFeatureEngineeringGroup(["Data Preprocessing and Feature Engineering"]) 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{{"Explorando los clasificadores SGD de Scikit-Learn"}} sklearn/preprocessing -.-> lab-71100{{"Explorando los clasificadores SGD de Scikit-Learn"}} sklearn/model_selection -.-> lab-71100{{"Explorando los clasificadores SGD de Scikit-Learn"}} sklearn/metrics -.-> lab-71100{{"Explorando los clasificadores SGD de Scikit-Learn"}} sklearn/datasets -.-> lab-71100{{"Explorando los clasificadores SGD de Scikit-Learn"}} ml/sklearn -.-> lab-71100{{"Explorando los clasificadores SGD de Scikit-Learn"}} end

Importar las bibliotecas necesarias

Primero, necesitamos importar las bibliotecas necesarias. Utilizaremos la biblioteca scikit-learn para el aprendizaje automático y el preprocesamiento de datos.

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

Cargar y preprocesar los datos

A continuación, cargaremos el conjunto de datos iris y lo preprocesaremos escalando las características utilizando StandardScaler.

## Cargar el conjunto de datos iris
iris = load_iris()
X, y = iris.data, iris.target

## Escalar las características
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

## Dividir los datos en conjuntos de entrenamiento y prueba
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)

Entrenar un clasificador utilizando SGD

Ahora entrenaremos un clasificador utilizando la clase SGDClassifier. Utilizaremos la función de pérdida log_loss y la penalización l2.

## Entrenar un clasificador utilizando SGD
clf = SGDClassifier(loss="log_loss", penalty="l2", max_iter=100, random_state=42)
clf.fit(X_train, y_train)

## Hacer predicciones en el conjunto de prueba
y_pred = clf.predict(X_test)

## Medir la precisión del clasificador
accuracy = accuracy_score(y_test, y_pred)

## Imprimir la precisión
print("Precisión del clasificador:", accuracy)

Entrenar un regresor utilizando SGD

A continuación, entrenaremos un regresor utilizando la clase SGDRegressor. Utilizaremos la función de pérdida squared_error y la penalización l2.

## Entrenar un regresor utilizando SGD
reg = SGDRegressor(loss="squared_error", penalty="l2", max_iter=100, random_state=42)
reg.fit(X_train, y_train)

## Hacer predicciones en el conjunto de prueba
y_pred = reg.predict(X_test)

## Medir el error cuadrático medio del regresor
mse = mean_squared_error(y_test, y_pred)

## Imprimir el error cuadrático medio
print("Error cuadrático medio del regresor:", mse)

Resumen

En este laboratorio, aprendimos cómo utilizar el Descenso de Gradiente Estocástico (SGD) para entrenar clasificadores y regresores lineales utilizando la biblioteca scikit-learn. Entrenamos un clasificador en el conjunto de datos iris y medimos su precisión, y entrenamos un regresor y medimos su error cuadrático medio. El SGD es un algoritmo de optimización poderoso que puede manejar eficientemente problemas de aprendizaje automático a gran escala y dispersos.