Abandono de Clientes
Metodología del Proyecto
Fases del Proyecto
1. Configuración del ambiente
Para empezar, se utiliza un entorno virtual. Las librerías
esenciales para el proyecto son
pandas, seaborn, matplotlib y
sklearn.
Para asegurar que el ambiente está listo, se puede ejecutar un script de verificación:
!python -V print('------') !pip show Pandas | grep 'Name\\|Version' print('------') !pip show Matplotlib | grep 'Name\\|Version'
2. Preprocesamiento de Datos
En este paso se realiza la limpieza, manejo de valores faltantes y codificación de variables categóricas.
-
One Hot Encoding: Se convierten las
columnas categóricas como
ContractyPaymentMethoda formato numérico usandoget_dummies. -
Escalado de Características: Se
normalizan variables numéricas como
tenureyMonthlyChargespara que tengan una escala similar. - Tratamiento de duplicados y nulos: Se limpia el dataset para asegurar su calidad.
3. Exploración de Datos (EDA)
Análisis y comprensión del conjunto de datos para identificar variables clave y entender las relaciones entre ellas.
Visualización:
- Generación de gráficos de barras para ver la distribución de clientes que abandonan por tipo de contrato o servicio de internet.
- Creación de un mapa de calor para visualizar la correlación entre variables.
Balanceo de Clases:
La variable objetivo Churn estaba
desbalanceada. Se utilizó la técnica
SMOTE para generar registros sintéticos de
la clase minoritaria y así obtener un dataset balanceado
para el entrenamiento.
Diagrama de puntos mostrando la distribución de Churn.
4. Construcción de Modelos
Se experimentó con varios algoritmos de clasificación para encontrar el de mejor rendimiento.
-
Separación de datos: Se dividió el
dataset en conjuntos de entrenamiento (70%) y prueba (30%)
usando
train_test_split. - Entrenamiento: Se entrenaron modelos como Regresión Logística, Árboles de Decisión y Random Forest con los datos de entrenamiento.
- Predicción: Se usaron los modelos entrenados para hacer predicciones sobre el conjunto de prueba.
5. Evaluación y Selección del Modelo
Se evaluaron los modelos utilizando métricas clave como Accuracy, Precision, Recall, F1-Score y AUC-ROC.
Se generó un gráfico de barras comparativo para visualizar el rendimiento de cada modelo en todas las métricas. Basado en estos resultados, se seleccionó el modelo con el mejor balance entre precisión y capacidad para detectar el abandono.
# Ejemplo de visualización de resultados results_df = pd.DataFrame(resultados) results_df.set_index('Nombre_Modelo', inplace=True) results_df.T.plot(kind='bar', figsize=(12, 6)) plt.title('Comparación de Métricas por Modelo') plt.ylabel('Puntuación') plt.show()
Conclusión: El modelo Random Forest fue seleccionado por su rendimiento superior, especialmente en métricas como F1-Score y AUC, cruciales para problemas con clases desbalanceadas.