Modelos lineales en 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 los modelos lineales en scikit-learn. Los modelos lineales son un conjunto de métodos utilizados para tareas de regresión y clasificación. Asumen que la variable objetivo es una combinación lineal de las características. Estos modelos se utilizan ampliamente en el aprendizaje automático debido a su simplicidad y interpretabilidad.

Abordaremos los siguientes temas:

  • Mínimos Cuadrados Ordinarios
  • Regresión Ridge
  • Lasso
  • Regresión Logística
  • Descenso de Gradiente Estocástico
  • Perceptrón

Comience con Aprendizaje Supervisado: Regresión, si no tiene experiencia previa en Aprendizaje Automático.

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 comentarios después de la sesión y resolveremos el problema inmediatamente para usted.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/linear_model("Linear Models") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/linear_model -.-> lab-71093{{"Modelos lineales en Scikit-Learn"}} ml/sklearn -.-> lab-71093{{"Modelos lineales en Scikit-Learn"}} end

Mínimos Cuadrados Ordinarios

Comience con Aprendizaje Supervisado: Regresión, si no tiene experiencia previa en Aprendizaje Automático.

Los Mínimos Cuadrados Ordinarios (OLS) es un método de regresión lineal que minimiza la suma de las diferencias al cuadrado entre los objetivos observados y los objetivos predichos. Matemáticamente, resuelve un problema de la forma:

\min_{w} || X w - y||_2^2

Comencemos ajustando un modelo de regresión lineal utilizando OLS.

from sklearn import linear_model

reg = linear_model.LinearRegression()
X = [[0, 0], [1, 1], [2, 2]]
y = [0, 1, 2]
reg.fit(X, y)

print(reg.coef_)
  • Importamos el módulo linear_model de scikit-learn.
  • Creamos una instancia de LinearRegression.
  • Utilizamos el método fit para ajustar el modelo a los datos de entrenamiento.
  • Imprimimos los coeficientes del modelo lineal.

Regresión Ridge

La regresión Ridge es un método de regresión lineal que agrega un término de penalización a la función objetivo de mínimos cuadrados ordinarios. Este término de penalización ayuda a reducir el sobreajuste al contraer los coeficientes hacia cero. La complejidad del modelo se puede controlar mediante el parámetro de regularización.

Ajustemos un modelo de regresión Ridge.

reg = linear_model.Ridge(alpha=0.5)
reg.fit([[0, 0], [0, 0], [1, 1]], [0, 0.1, 1])

print(reg.coef_)
  • Creamos una instancia de Ridge con el parámetro de regularización alpha establecido en 0.5.
  • Utilizamos el método fit para ajustar el modelo a los datos de entrenamiento.
  • Imprimimos los coeficientes del modelo de regresión Ridge.

Lasso

El Lasso es un método de regresión lineal que agrega un término de penalización a la función objetivo de mínimos cuadrados ordinarios. El término de penalización tiene el efecto de establecer algunos coeficientes en exactamente cero, lo que permite realizar la selección de características. El Lasso se puede utilizar para la estimación de modelos esparsos.

Ajustemos un modelo Lasso.

reg = linear_model.Lasso(alpha=0.1)
reg.fit([[0, 0], [1, 1]], [0, 1])

print(reg.coef_)
  • Creamos una instancia de Lasso con el parámetro de regularización alpha establecido en 0.1.
  • Utilizamos el método fit para ajustar el modelo a los datos de entrenamiento.
  • Imprimimos los coeficientes del modelo Lasso.

Regresión Logística

La regresión logística es un método de clasificación que estima las probabilidades de los posibles resultados utilizando una función logística. Se utiliza comúnmente para tareas de clasificación binaria. La regresión logística también se puede extender para manejar problemas de clasificación multi-clase.

Ajustemos un modelo de regresión logística.

clf = linear_model.LogisticRegression(random_state=0).fit(X, y)
print(clf.coef_)
  • Creamos una instancia de LogisticRegression con el parámetro random_state establecido en 0.
  • Utilizamos el método fit para ajustar el modelo a los datos de entrenamiento.
  • Imprimimos los coeficientes del modelo de regresión logística.

Descenso de Gradiente Estocástico (SGD)

El Descenso de Gradiente Estocástico (SGD) es un enfoque simple pero eficiente para el entrenamiento de modelos lineales. Es particularmente útil cuando el número de muestras y características es muy grande. El SGD actualiza los parámetros del modelo utilizando un subconjunto pequeño de los datos de entrenamiento en cada iteración, lo que lo hace adecuado para el aprendizaje en línea y el aprendizaje fuera de núcleo.

Ajustemos un modelo de regresión logística utilizando SGD.

clf = linear_model.SGDClassifier(loss="log_loss", max_iter=1000)
clf.fit(X, y)

print(clf.coef_)
  • Creamos una instancia de SGDClassifier con el parámetro loss establecido en "log_loss" para realizar la regresión logística.
  • Utilizamos el método fit para ajustar el modelo a los datos de entrenamiento.
  • Imprimimos los coeficientes del modelo de regresión logística obtenido utilizando SGD.

Perceptrón

El Perceptrón es un algoritmo de clasificación lineal simple adecuado para el aprendizaje a gran escala. Actualiza su modelo solo en los errores, lo que lo hace más rápido de entrenar que el descenso de gradiente estocástico (SGD) con pérdida de bisagra. Los modelos resultantes también son más esparsos.

Ajustemos un modelo de perceptrón.

clf = linear_model.Perceptron(alpha=0.1)
clf.fit(X, y)

print(clf.coef_)
  • Creamos una instancia de Perceptron con el parámetro de regularización alpha establecido en 0.1.
  • Utilizamos el método fit para ajustar el modelo a los datos de entrenamiento.
  • Imprimimos los coeficientes del modelo de perceptrón.

Resumen

En este laboratorio, exploramos los modelos lineales en scikit-learn. Aprendimos sobre mínimos cuadrados ordinarios, regresión ridge, lasso, regresión logística, descenso de gradiente estocástico y perceptrón. Estos modelos se pueden utilizar tanto para tareas de regresión como de clasificación. También vimos cómo ajustar estos modelos utilizando varios algoritmos y técnicas, como el aprendizaje en línea y la selección de características.