Regresión Logística en Python
La regresión logística es un algoritmo de aprendizaje supervisado utilizado para problemas de clasificación binaria, donde el objetivo es predecir una variable de salida discreta que tiene dos clases posibles. Aquí te presento un ejemplo paso a paso de cómo realizar una regresión logística en Python utilizando la biblioteca Scikit-learn:
En Regresión Logística en Python verás el concepto explicado en lenguaje claro y un ejemplo que puedes ejecutar en el editor de The Data Schools.
Modifica el código del ejemplo antes de pasar a la siguiente lección: la experimentación fija mejor el aprendizaje que leer pasivamente.
Importar las bibliotecas necesarias
Ejemplo
import numpy
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report
Cargar los datos
Para este ejemplo, supongamos que tienes un archivo CSV con datos etiquetados. Puedes cargar los datos utilizando la biblioteca pandas:
Ejemplo
import pandas as pd
data = pd.read_csv('datos.csv')
print(data)
Preprocesar los datos
Antes de aplicar la regresión logística, es importante preprocesar los datos. Esto puede incluir el manejo de datos faltantes, la codificación de variables categóricas, la normalización de datos, etc. En este ejemplo, asumiremos que los datos ya están preprocesados y no hay valores faltantes.
Dividir los datos en conjuntos de entrenamiento y prueba
Para evaluar el rendimiento del modelo, dividiremos los datos en conjuntos de entrenamiento y prueba:
Ejemplo
X = data.drop('clase', axis=1) # Variables predictoras
y = data['clase'] # Variable de salida
X_t
X_train, X_test, y_train, y_test = train_test_splitX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
print(y)
Crear y entrenar el modelo de regresión logística
Ejemplo
from sklearn.model_selection import train_test_split
X = np.array([[1], [2], [3], [4], [5]])
y = np.array([2, 4, 5, 4, 5])
X_train, XX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
model = LogisticRegression()
model.fit(X_train, y_train)
print(model)
model = LogisticRegression()
model.fit(X_train, y_train)
pprint(model)
Realizar predicciones
Ejemplo
from sklearn.model_selection import train_test_split
X = np.array([[1], [2], [3], [4], [5]])
y = np.array([2, 4, 5, 4, 5])
X_train, XX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
model = LogisticRegression()
model.fit(X_train, y_train)
print(model)
y_pred = model.premodel = LogisticRegression()
model.fit(X_train, y_train)
pprint(model)
y_pred = model
y_pred = model.predict(X_test)
print(y_pred)
Evaluar el rendimiento del modelo
Ejemplo
import pandas as pd
data = pd.read_csv('datos.csv')
print(data)
Estos son los pasos básicos para realizar una regresión logística en Python. Es importante mencionar que, en problemas reales, es posible que se requiera realizar un ajuste más detallado del modelo y una selección adecuada de características. Además, el preprocesamiento de datos puede variar según el problema y el conjunto de datos.
Practica Regresión Logística en Python en el editor
Pon en práctica lo aprendido con nuestro editor Python interactivo. Cada ejercicio incluye el código de partida y un botón para abrirlo en una nueva pestaña, donde puedes modificarlo y ejecutarlo.
Ejercicio: Regresión logística
Para este ejemplo, supongamos que tienes un archivo CSV con datos etiquetados. Puedes cargar los datos utilizando la biblioteca pandas.
Ejercicio: Matriz de confusión
Para evaluar el rendimiento del modelo, dividiremos los datos en conjuntos de entrenamiento y prueba.
Ejemplo
import numpy
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report
Ejercicio: Dividir train/test
Para evaluar el rendimiento del modelo, dividiremos los datos en conjuntos de entrenamiento y prueba.
Ejemplo
X = data.drop('clase', axis=1) # Variables predictoras
y = data['clase'] # Variable de salida
X_t
X_train, X_test, y_train, y_test = train_test_splitX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
print(y)
Ejercicio: Dividir train/test (2)
Para evaluar el rendimiento del modelo, dividiremos los datos en conjuntos de entrenamiento y prueba.
Ejemplo
from sklearn.model_selection import train_test_split
X = np.array([[1], [2], [3], [4], [5]])
y = np.array([2, 4, 5, 4, 5])
X_train, XX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
model = LogisticRegression()
model.fit(X_train, y_train)
print(model)
model = LogisticRegression()
model.fit(X_train, y_train)
pprint(model)
Ejercicio: Dividir train/test (3)
Para evaluar el rendimiento del modelo, dividiremos los datos en conjuntos de entrenamiento y prueba.
Ejemplo
from sklearn.model_selection import train_test_split
X = np.array([[1], [2], [3], [4], [5]])
y = np.array([2, 4, 5, 4, 5])
X_train, XX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
model = LogisticRegression()
model.fit(X_train, y_train)
print(model)
y_pred = model.premodel = LogisticRegression()
model.fit(X_train, y_train)
pprint(model)
y_pred = model
y_pred = model.predict(X_test)
print(y_pred)
Cómo practicar
1. Pulsa Ejecutar en el bloque de código.
2. Modifica un valor o argumento.
3. Vuelve a ejecutar y observa la consola.
Comprueba lo aprendido
Responde 2–3 preguntas sobre esta lección. Verás ✓ en verde si aciertas o ✗ en rojo si fallas.