Introducción
Esta práctica te proporcionará una guía paso a paso sobre cómo crear un modelo de Regresión Logística utilizando la librería scikit-learn de Python.
Consejos sobre la VM
Una vez que se haya iniciado la VM, haz 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 tengas que esperar unos segundos a que Jupyter Notebook termine de cargar. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.
Si tienes problemas durante el aprendizaje, no dudes en preguntar a Labby. Proporciona retroalimentación después de la sesión y resolveremos rápidamente el problema para ti.
Importar las bibliotecas necesarias
El primer paso es importar las bibliotecas necesarias que se utilizarán en esta práctica. Vamos a utilizar numpy, matplotlib, scipy y sklearn.
import matplotlib.pyplot as plt
import numpy as np
from scipy.special import expit
from sklearn.linear_model import LinearRegression, LogisticRegression
Generar un conjunto de datos de ejemplo
El siguiente paso es generar un conjunto de datos de ejemplo, que es una línea recta con un poco de ruido gaussiano. Vamos a utilizar numpy para generar este conjunto de datos.
## Generate a toy dataset, it's just a straight line with some Gaussian noise:
xmin, xmax = -5, 5
n_samples = 100
np.random.seed(0)
X = np.random.normal(size=n_samples)
y = (X > 0).astype(float)
X[X > 0] *= 4
X += 0.3 * np.random.normal(size=n_samples)
X = X[:, np.newaxis]
Ajustar el clasificador
Después de generar el conjunto de datos, ajustaremos el clasificador utilizando LogisticRegression de scikit-learn.
## Fit the classifier
clf = LogisticRegression(C=1e5)
clf.fit(X, y)
Graficar el resultado
El último paso es graficar el resultado. Utilizaremos matplotlib para crear un diagrama de dispersión de los datos de ejemplo y graficar el modelo de regresión logística y el modelo de regresión lineal.
## and plot the result
plt.figure(1, figsize=(4, 3))
plt.clf()
plt.scatter(X.ravel(), y, label="example data", color="black", zorder=20)
X_test = np.linspace(-5, 10, 300)
loss = expit(X_test * clf.coef_ + clf.intercept_).ravel()
plt.plot(X_test, loss, label="Logistic Regression Model", color="red", linewidth=3)
ols = LinearRegression()
ols.fit(X, y)
plt.plot(
X_test,
ols.coef_ * X_test + ols.intercept_,
label="Linear Regression Model",
linewidth=1,
)
plt.axhline(0.5, color=".5")
plt.ylabel("y")
plt.xlabel("X")
plt.xticks(range(-5, 10))
plt.yticks([0, 0.5, 1])
plt.ylim(-0.25, 1.25)
plt.xlim(-4, 10)
plt.legend(
loc="lower right",
fontsize="small",
)
plt.tight_layout()
plt.show()
Resumen
Esta práctica proporcionó una guía paso a paso sobre cómo crear un modelo de regresión logística utilizando la biblioteca scikit-learn de Python. Comenzamos importando las bibliotecas necesarias, generando un conjunto de datos de ejemplo, ajustando el clasificador y, finalmente, graficando el resultado.