Regresión Ridge para Modelado Lineal

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, aprenderemos a usar la Regresión Ridge para la regresión lineal con regularización L2 para evitar el sobreajuste. Usaremos scikit-learn, una popular biblioteca de aprendizaje automático para Python.

Consejos sobre la VM

Una vez que se haya iniciado 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 las 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 su retroalimentación después de la sesión y resolveremos el problema para usted de inmediato.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) 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/ModelSelectionandEvaluationGroup -.-> sklearn/metrics("Metrics") sklearn/UtilitiesandDatasetsGroup -.-> sklearn/datasets("Datasets") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/linear_model -.-> lab-49269{{"Regresión Ridge para Modelado Lineal"}} sklearn/metrics -.-> lab-49269{{"Regresión Ridge para Modelado Lineal"}} sklearn/datasets -.-> lab-49269{{"Regresión Ridge para Modelado Lineal"}} ml/sklearn -.-> lab-49269{{"Regresión Ridge para Modelado Lineal"}} end

Importar las bibliotecas necesarias

Comenzaremos importando las bibliotecas necesarias para este laboratorio.

import matplotlib.pyplot as plt
import numpy as np
from sklearn.datasets import make_regression
from sklearn.linear_model import Ridge
from sklearn.metrics import mean_squared_error

Generar datos aleatorios

Generaremos datos aleatorios con la función make_regression de scikit-learn. Estableceremos n_samples en 10, n_features en 10 y random_state en 1. Esta función devolverá nuestras características de entrada X, nuestra variable objetivo y, y los valores reales de los coeficientes w.

X, y, w = make_regression(
    n_samples=10, n_features=10, coef=True, random_state=1, bias=3.5
)

Inicializar el modelo de Regresión Ridge

Inicializaremos el modelo de Regresión Ridge con sus hiperparámetros predeterminados.

clf = Ridge()

Entrenar el modelo con diferentes valores de regularización

Entrenaremos el modelo con diferentes valores de regularización utilizando un bucle. Estableceremos la fuerza de regularización cambiando el valor de alpha en la función set_params. Guardaremos los coeficientes y los errores para cada valor de alpha.

coefs = []
errors = []

alphas = np.logspace(-6, 6, 200)

for a in alphas:
    clf.set_params(alpha=a)
    clf.fit(X, y)
    coefs.append(clf.coef_)
    errors.append(mean_squared_error(clf.coef_, w))

Graficar los resultados

Graficaremos los coeficientes y los errores en función de la fuerza de regularización utilizando Matplotlib.

plt.figure(figsize=(20, 6))

plt.subplot(121)
ax = plt.gca()
ax.plot(alphas, coefs)
ax.set_xscale("log")
plt.xlabel("alpha")
plt.ylabel("weights")
plt.title("Ridge coefficients as a function of the regularization")
plt.axis("tight")

plt.subplot(122)
ax = plt.gca()
ax.plot(alphas, errors)
ax.set_xscale("log")
plt.xlabel("alpha")
plt.ylabel("error")
plt.title("Coefficient error as a function of the regularization")
plt.axis("tight")

plt.show()

Resumen

En este laboratorio, aprendimos cómo utilizar la Regresión Ridge con regularización L2 para prevenir el sobreajuste. Generamos datos aleatorios, entrenamos un modelo de Regresión Ridge con diferentes valores de regularización y graficamos los coeficientes y los errores en función de la fuerza de regularización.