Este proyecto se enfoca en la creación y optimización de un modelo de regresión logística para predecir trastornos del sueño utilizando el conjunto de datos "Sleep Health". El objetivo es identificar los factores que afectan los trastornos del sueño y construir un modelo predictivo preciso que pueda generalizar bien a nuevos datos. Se utiliza un enfoque integral que incluye la limpieza de datos, ingeniería de características, y la optimización de modelos mediante técnicas avanzadas.
Reporte Final: Archivo pdf con el reporte completo del proyecto. Acceder al reporte aquí
El conjunto de datos utilizado es el "Sleep Health Dataset" extraído de Kaggle. Contiene información sobre diversos factores relacionados con la salud del sueño de los individuos, incluyendo variables como la duración del sueño, calidad del sueño, nivel de actividad física, nivel de estrés, índice de masa corporal (IMC), presión arterial, frecuencia cardíaca, y otros indicadores de salud.
-
Limpieza de Datos
- Se corrigió la columna 'Sleep Disorder', transformando los valores nulos en 'No'.
- Se creó una nueva columna binaria 'Has Sleep Disorder' para la variable objetivo.
- Se aplicó
one-hot encodinga las variables categóricas 'BMI Category' y 'Gender'. - Se eliminaron las columnas innecesarias, como 'Occupation'.
-
Transformación de Datos
- La columna 'Blood Pressure' fue convertida al promedio de la presión sistólica y diastólica.
- Se transformaron las variables categóricas utilizando
one-hot encoding.
-
Modelo de Decisión
- Se eligió el modelo de regresión logística para la predicción binaria.
- Se implementaron técnicas de regularización y ajuste de parámetros utilizando
Grid Searchpara encontrar los mejores hiperparámetros.
-
Evaluación del Modelo
- Se dividió el conjunto de datos en entrenamiento, validación y prueba.
- Se evaluó el modelo utilizando métricas de precisión y se generaron informes de clasificación para ambos conjuntos.
- Mejores Parámetros: {'C': 100, 'penalty': 'l1', 'solver': 'liblinear'}
- Precisión en el Conjunto de Prueba: 96.49%
- Precisión en el Conjunto de Validación: 94.64%
El modelo optimizado mostró una excelente capacidad de generalización, con alta precisión en los conjuntos de prueba y validación. Esto indica que el modelo es robusto y efectivo para predecir trastornos del sueño en nuevos datos.
-
Instalar Dependencias Asegúrate de tener las siguientes bibliotecas instaladas:
pip install pandas scikit-learn graphviz
-
Preparar el Conjunto de Datos Si tienes problemas con el csv del repositorio, descarga el archivo
sleep_health.csvdel dataset en Kaggle y colócalo en el directorio del proyecto. -
Ejecutar el Código Ejecuta los scripts de Python para realizar el análisis y generar los resultados:
python main.py
-
Visualizar el Árbol de Decisión El árbol de decisión se guardará como un archivo PDF llamado
decision_tree.pdfen el directorio de trabajo.
main.py: Script principal que realiza el análisis y optimización del modelo.decTree.py: Script con función para la creación de árbol de decisión.sleep_health.csv: Conjunto de datos utilizado para el análisis.decision_tree.pdf: Visualización del árbol de decisión generado.
Si deseas contribuir a este proyecto, por favor haz un fork del repositorio y envía un pull request con tus cambios.