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.
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_modelde scikit-learn. - Creamos una instancia de
LinearRegression. - Utilizamos el método
fitpara 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
Ridgecon el parámetro de regularizaciónalphaestablecido en 0.5. - Utilizamos el método
fitpara 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
Lassocon el parámetro de regularizaciónalphaestablecido en 0.1. - Utilizamos el método
fitpara 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
LogisticRegressioncon el parámetrorandom_stateestablecido en 0. - Utilizamos el método
fitpara 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
SGDClassifiercon el parámetrolossestablecido en "log_loss" para realizar la regresión logística. - Utilizamos el método
fitpara 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
Perceptroncon el parámetro de regularizaciónalphaestablecido en 0.1. - Utilizamos el método
fitpara 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.