Realizar un análisis exploratorio de datos (EDA) inicial para al menos cuatro conjuntos de datos, diagnosticar y elegir una problemática específica para abordar (regresión, clasificación, clusterización, predicción). Entregar un repositorio con el dataset elegido, el EDA inicial y la problemática seleccionada.
- Buscar al menos cuatro conjuntos de datos en plataformas como:
- Kaggle
- UCI Machine Learning Repository
- Cualquier otra fuente confiable
- Asegurarse de que los conjuntos de datos seleccionados sean:
- Diversos
- Cubran diferentes dominios y tipos de datos
- Realizar un EDA inicial para cada uno de los cuatro conjuntos de datos seleccionados:
- Visualizaciones
- Análisis estadístico descriptivo
- Identificación de valores nulos y outliers
- Documentar los hallazgos de cada EDA en un notebook de Jupyter.
- Diagnosticar las principales características y desafíos de cada conjunto de datos.
- Elegir una problemática específica para abordar:
- Regresión
- Clasificación
- Clusterización
- Predicción
- Justificar la elección y explicar por qué es relevante y desafiante.
- Crear un repositorio para el Proyecto 2:
- Incluir el EDA inicial de los cuatro conjuntos de datos en notebooks separados.
- Incluir una carpeta para el dataset elegido con su EDA correspondiente.
- Documentar la problemática seleccionada en un archivo
README.md.
- Breve descripción:
- Fuente
- Tamaño
- Variables
- Calcular estadísticas descriptivas básicas:
- Media, mediana, desviación estándar
- Analizar la distribución de variables categóricas.
- Visualizar la distribución de variables:
- Histogramas
- Gráficos de barras
- Box plots
- Visualizar correlaciones entre variables:
- Mapa de calor de correlación
- Detectar valores nulos y proponer estrategias de tratamiento.
- Identificar outliers y evaluar su impacto.
- Resumir los principales hallazgos:
- Características y desafíos únicos de cada conjunto de datos.
Realizar el preprocesamiento de datos y la optimización de modelos de machine learning para el conjunto de datos seleccionado. Elegir la técnica más adecuada y optimizar los hiperparámetros para obtener el mejor rendimiento.
- Tratar valores nulos:
- Imputación
- Eliminación
- Manejar outliers:
- Filtrado
- Transformación
- Usar
ColumnTransformerpara transformaciones específicas. - Codificar variables categóricas con One-Hot Encoding.
- Escalar variables numéricas con StandardScaler o métodos de normalización.
- Usar
Pipelinepara:- Automatizar el preprocesamiento
- Asegurar reproducibilidad
- Entrenar múltiples modelos:
- Regresión Lineal
- KNN
- Árbol de Decisión
- Random Forest
- XGBoost
- LightGBM
- Evaluar con validación cruzada y seleccionar el mejor rendimiento inicial.
- Usar métricas relevantes:
- Exactitud, precisión, recall, F1-Score, ROC-AUC
- Seleccionar la técnica más adecuada según las métricas.
- Realizar búsqueda exhaustiva de hiperparámetros.
- Realizar búsqueda aleatoria para espacios de búsqueda grandes.
- Implementar optimización avanzada con:
- Optimización bayesiana
- Pruning
- Entrenar con los mejores hiperparámetros.
- Evaluar rendimiento en el conjunto de prueba.
- Comparar rendimiento optimizado vs. inicial.
- Documentar todos los pasos en un notebook de Jupyter:
- Preprocesamiento
- Selección de técnica
- Optimización
- Justificar cada decisión.
- Actualizar el repositorio con:
- Notebooks de preprocesamiento, selección y optimización.
- Resultados de optimización y comparación de modelos.
- Crear un tag de liberación:
v2.0.0.