Regresión logística
REGRESIÓN LOGÍSTICA (Aprendizaje supervisado)
Otro modelo de predicción de aprendizaje supervisado es el de regresión logística. Se trata de un tipo de análisis de regresión utilizado para predecir el resultado de una variable categórica (aquella que puede adoptar un número limitado de categorías) en función de las variables predictoras.
EJEMPLO
# Importar las bibliotecas necesarias
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report
# Crear un conjunto de datos de ejemplo
data = {
'Años_Experiencia': np.random.randint(1, 20, 100),
'Nivel_Educativo': np.random.randint(10, 20, 100),
'Edad': np.random.randint(20, 60, 100),
'Abandono': np.random.choice([0, 1], size=100)
}
df = pd.DataFrame(data)
# Dividir los datos en conjuntos de entrenamiento y prueba
X = df[['Años_Experiencia', 'Nivel_Educativo', 'Edad']]
y = df['Abandono']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Crear un modelo de regresión logística
modelo_logistico = LogisticRegression()
# Entrenar el modelo con los datos de entrenamiento
modelo_logistico.fit(X_train, y_train)
# Realizar predicciones en el conjunto de prueba
predicciones = modelo_logistico.predict(X_test)
# Evaluar el rendimiento del modelo
accuracy = accuracy_score(y_test, predicciones)
conf_matrix = confusion_matrix(y_test, predicciones)
class_report = classification_report(y_test, predicciones)
print(f'Accuracy: {accuracy}')
print(f'Confusion Matrix:\n{conf_matrix}')
print(f'Classification Report:\n{class_report}')
# Visualizar los resultados (para dos características)
plt.scatter(X_test['Años_Experiencia'], y_test, color='black', label='Actual')
plt.scatter(X_test['Años_Experiencia'], predicciones, color='red', label='Predicción')
plt.title('Predicción de Abandono con Regresión Logística')
plt.xlabel('Años de Experiencia')
plt.ylabel('Abandono (0: No, 1: Sí)')
plt.legend()
plt.show()
Este código utiliza la regresión logística para predecir la probabilidad de abandono (1) o no abandono (0) de empleados en función de características como años de experiencia, nivel educativo y edad. La visualización compara las etiquetas reales con las predicciones. Ten en cuenta que este es un ejemplo básico y, en la práctica, se deben considerar conjuntos de datos más grandes y funciones más relevantes.
Comentarios
Publicar un comentario