Mientras CRISP-DM es la metodología más popular y establecida, existen otras metodologías especializadas que abordan diferentes aspectos de proyectos de ciencia de datos, desde perspectivas corporativas (IBM, Microsoft) hasta enfoques ágiles y de ingeniería.
KDD es uno de los procesos más antiguos de descubrimiento de conocimiento en bases de datos, previo a CRISP-DM. Desarrollado en la década de 1990, establece los fundamentos conceptuales de la minería de datos moderna.
Definición:
Knowledge Discovery in Databases (KDD) es el proceso completo de descubrir conocimiento útil desde datos, incluyendo:
Preparación de datos
Selección de patrones
Limpieza y transformación
Aplicación de algoritmos de minería
Interpretación y evaluación de resultados
Proceso KDD: 5 etapas:
graph LR
A[1️⃣ Selección] --> B[2️⃣ Preprocesamiento]
B --> C[3️⃣ Transformación]
C --> D[4️⃣ Data Mining]
D --> E[5️⃣ Interpretación]
E -.Iteración.-> A
style A fill:#e3f2fd
style B fill:#bbdefb
style C fill:#90caf9
style D fill:#64b5f6
style E fill:#42a5f5
# Ejemplo: Selección de datos KDDimportpandasaspdfromsqlalchemyimportcreate_engine# Conectar a base de datos fuenteengine=create_engine('postgresql://user:pass@host:5432/db')# SELECCIÓN: Extraer datos relevantes para el problemaquery="""SELECT cliente_id, fecha_transaccion, monto, categoria_producto, edad_cliente, ciudadFROM transacciones t JOIN clientes c ON t.cliente_id = c.idWHERE fecha_transaccion >= '2023-01-01' AND monto > 0 AND categoria_producto IN ('Electrónica', 'Hogar', 'Ropa')"""# Dataset target seleccionadodf_selected=pd.read_sql(query,engine)print(f"📊 Datos seleccionados: {len(df_selected):,} registros")print(f" Periodo: {df_selected['fecha_transaccion'].min()} a {df_selected['fecha_transaccion'].max()}")print(f" Categorías: {df_selected['categoria_producto'].unique()}")# Output:# 📊 Datos seleccionados: 850,000 registros# Periodo: 2023-01-01 a 2024-12-31# Categorías: ['Electrónica' 'Hogar' 'Ropa']
ASUM-DM es la evolución de CRISP-DM desarrollada por IBM para proyectos de analytics empresariales, integrando mejores prácticas de IBM y enfoque en soluciones end-to-end.
Fases de ASUM-DM:
graph TD
A[1. Análisis] --> B[2. Diseño]
B --> C[3. Implementación]
C --> D[4. Operar y Optimizar]
D -.Mejora Continua.-> A
style A fill:#054ADA
style B fill:#1F70C1
style C fill:#4589FF
style D fill:#78A9FF
# Ejemplo: Fase de Análisis ASUM-DMproyecto_asum={'nombre':'Optimización de Cadena de Suministro con Analytics','cliente':'Empresa Retail Global','sponsor':'VP Operations','necesidades_negocio':['Reducir costos de inventario 15%','Mejorar precisión pronóstico demanda 20%','Reducir stockouts 30%','Optimizar rutas de distribución'],'stakeholders':{'primarios':['VP Operations','Director Supply Chain','CIO'],'secundarios':['Gerentes Almacén','Equipo Compras','Analistas Demanda'],'usuarios_finales':['Planificadores','Compradores','Analistas']},'entregables':['Modelo predictivo de demanda','Dashboard ejecutivo tiemporeal','Sistema alertas automático','Recomendaciones de reabastecimiento','Optimizador de rutas'],'kpis_exito':{'reduccion_costo_inventario':'15%','accuracy_forecast':'85%','reduccion_stockouts':'30%','roi':'300% en 18 meses'},'restricciones':{'presupuesto':'$500,000','tiempo':'9 meses','tecnologia':'IBM Cloud Pak for Data, Watson Studio','cumplimiento':'SOC2, ISO 27001'}}print("=== FASE 1: ANÁLISIS (ASUM-DM) ===\n")print(f"📋 Proyecto: {proyecto_asum['nombre']}")print(f"🏢 Cliente: {proyecto_asum['cliente']}\n")print("🎯 Necesidades de Negocio:")fori,necesidadinenumerate(proyecto_asum['necesidades_negocio'],1):print(f" {i}. {necesidad}")print(f"\n✅ Entregables Definidos: {len(proyecto_asum['entregables'])}")print(f"💰 Presupuesto: {proyecto_asum['restricciones']['presupuesto']}")print(f"⏱️ Timeline: {proyecto_asum['restricciones']['tiempo']}")
# Ejemplo: Fase de Implementación ASUM-DMplan_implementacion={'sprint_1':{'duracion':'4 semanas','tareas':['Construir pipeline de datos producción','Entrenar modelos con datos completos','Desarrollar API REST para predicciones','Integrar con ERP (SAP)','Tests unitarios y de integración'],'entregable':'MVP funcional en staging'},'sprint_2':{'duracion':'3 semanas','tareas':['Desarrollar dashboard Cognos','Sistema de alertas automático','Documentación técnica','Documentación usuario final','UAT (User Acceptance Testing)'],'entregable':'Solución completa en pre-producción'},'sprint_3':{'duracion':'2 semanas','tareas':['Deployment a producción (canary)','Capacitación usuarios (3 sesiones)','Monitoreo intensivo','Ajustes post-lanzamiento'],'entregable':'Sistema en producción operacional'},'capacitacion':{'sesion_1':'Planificadores (uso dashboard, recomendaciones)','sesion_2':'Compradores (alertas reabastecimiento)','sesion_3':'Analistas (interpretación modelos, métricas)'}}print("\n=== FASE 3: IMPLEMENTACIÓN (ASUM-DM) ===\n")forsprint,detallesinplan_implementacion.items():if'sprint'insprint:print(f"🚀 {sprint.upper()} ({detalles['duracion']}):")fortareaindetalles['tareas']:print(f" ▪️ {tarea}")print(f" ✅ Entregable: {detalles['entregable']}\n")
11.3. TDSP (Team Data Science Process - Microsoft)¶
Metodología de Microsoft
TDSP es la metodología ágil e iterativa de Microsoft para proyectos de data science en equipo, enfocada en colaboración, estándares y mejores prácticas corporativas.
Componentes de TDSP:
graph TB
A[1️⃣ Ciclo de Vida] --> E[TDSP]
B[2️⃣ Estructura Proyecto] --> E
C[3️⃣ Infraestructura] --> E
D[4️⃣ Herramientas] --> E
E --> F[Éxito Proyecto DS]
style E fill:#00BCF2
style F fill:#FFB900
1. Ciclo de vida de TDSP:
5 Etapas iterativas:
graph LR
A[Business Understanding] --> B[Data Acquisition]
B --> C[Modeling]
C --> D[Deployment]
D --> E[Customer Acceptance]
E -.Feedback.-> A
style A fill:#00BCF2
style B fill:#0078D4
style C fill:#50E6FF
style D fill:#FFB900
style E fill:#00CC6A
Etapa 1: Business Understanding (Comprensión del Negocio)¶
Definir objetivos
Identificar fuentes de datos
Crear plan del proyecto
Etapa 2: Data Acquisition & Understanding (Adquisición y Comprensión de Datos)¶
# src/data/make_dataset.py - TDSP Structureimportpandasaspdfromazure.storage.blobimportBlobServiceClientimportlogginglogging.basicConfig(level=logging.INFO)logger=logging.getLogger(__name__)classDataLoader:""" Carga datos desde Azure Blob Storage siguiendo estructura TDSP """def__init__(self,connection_string,container_name):self.blob_service=BlobServiceClient.from_connection_string(connection_string)self.container=container_namedefload_raw_data(self,blob_name,output_path='data/raw/'):""" Descarga datos crudos desde blob storage Args: blob_name: Nombre del blob en Azure output_path: Ruta local para guardar (dentro de data/raw/) Returns: DataFrame con datos cargados """logger.info(f"Descargando {blob_name} desde Azure Blob Storage...")blob_client=self.blob_service.get_blob_client(container=self.container,blob=blob_name)# Descargar a data/raw/ (inmutable)local_path=output_path+blob_namewithopen(local_path,"wb")asdownload_file:download_file.write(blob_client.download_blob().readall())logger.info(f"✅ Datos descargados a {local_path}")# Cargar a DataFramedf=pd.read_csv(local_path)logger.info(f"📊 Shape: {df.shape}")returndfdefsave_processed_data(self,df,filename):""" Guarda datos procesados en data/processed/ """output_path=f'data/processed/{filename}'df.to_parquet(output_path,index=False)logger.info(f"💾 Datos procesados guardados en {output_path}")# Usoif__name__=="__main__":# Configuración desde variables de entornoimportosconnection_string=os.getenv('AZURE_STORAGE_CONNECTION_STRING')loader=DataLoader(connection_string,'datos-proyecto')# Cargar datos crudosdf_raw=loader.load_raw_data('clientes_2024.csv')# Procesar (siguiente script lo haría)# Ver src/data/clean_data.py
3. Infraestructura y recursos:
TDSP recomienda infraestructura compartida del equipo:
graph LR
A[1. Ideación] --> B[2. Adquisición<br/>Exploración]
B --> C[3. Investigación<br/>Desarrollo]
C --> D[4. Validación]
D --> E[5. Entrega]
E --> F[6. Supervisión]
F -.Feedback.-> A
style A fill:#FF6B6B
style B fill:#FFD93D
style C fill:#6BCB77
style D fill:#4D96FF
style E fill:#9D84B7
style F fill:#FF8C42
Características únicas:
Integra backlog ágil con ciencia de datos
Énfasis en mejora continua
Observabilidad y feedback de usuarios
Iteraciones cortas (sprints 2-3 semanas)
Data Science Workflow:
Fases de alto nivel:
Fase
Subfases
Descripción
Preparación
• Definir problema • Recolectar datos • Explorar
Fase inicial iterativa
Experimentación
• Feature engineering • Modelado • Evaluación
Ciclo de prueba-error
Distribución
• Deployment • Monitoreo • Mantenimiento
Puesta en producción
Características:
Muy flexible y adaptable
Ideal para startups y equipos pequeños
Menos prescriptivo que CRISP-DM
Toward Data Mining Engineering:
Extensión de CRISP-DM con enfoque de ingeniería:
Incorpora estándares de ingeniería de software
IEEE Std 1074: Procesos de desarrollo de software
ISO 12207: Ciclo de vida de software
Gestión de proyectos: WBS, Gantt, RACI
Procesos organizativos: Roles, gobernanza
Fases adicionales:
1. Gestión de Proyecto: Planning, tracking, control
2. Gestión de Calidad: Testing, validación, auditoría
3. Gestión de Riesgos: Identificación, mitigación
4. Gestión de Configuración: Versiones, releases
Agile Delivery Framework for BI & Analytics:
Integra Agile con BI y Analytics:
graph TD
A[Product Backlog] --> B[Sprint Planning]
B --> C[Sprint 2-3 semanas]
C --> D{Demo & Review}
D --> E[Retrospectiva]
E --> F[Increment]
F --> A
C --> C1[Daily Standup]
C1 --> C
style A fill:#FFE5B4
style C fill:#B4D7FF
style F fill:#B4FFB4
Roles:
Product Owner: Define prioridades analytics
Scrum Master: Facilita proceso ágil
Data Science Team: Analistas + Data Scientists + Engineers
Usa CRISP-DM si:
- Es tu primer proyecto de data science
- No tienes restricciones de plataforma tecnológica
- Necesitas un estándar probado y documentado
- El equipo es multidisciplinario (negocio + técnico)
Usa ASUM-DM si:
- Trabajas con tecnologías IBM (Watson, Cloud Pak)
- El proyecto es enterprise-grade
- Requieres gobernanza estricta
- Necesitas mejora continua estructurada (Operar y Optimizar)
Usa TDSP si:
- Tu stack es Azure/Microsoft
- Trabajas en equipo (>3 personas)
- Necesitas estandarización y reproducibilidad
- MLOps es prioridad desde el inicio
Usa KDD si:
- Proyecto de investigación académica
- Énfasis en desarrollo de algoritmos
- No requieres deployment inmediato
Usa Domino/Agile si:
- Startup o equipo pequeño
- Necesitas velocidad de iteración
- Cultura ágil establecida
- Feedback rápido de usuarios
CRISP-DM sigue siendo el estándar de facto (agnóstico, probado)
ASUM-DM y TDSP son evoluciones corporativas con MLOps integrado
KDD proporciona los fundamentos teóricos
Metodologías ágiles ganan terreno en equipos modernos
No hay "mejor" metodología universal, depende del contexto
Combinar elementos de múltiples metodologías es válido y común
Recomendación Final
Empieza con CRISP-DM como base sólida. Luego, incorpora elementos de:
- TDSP para estructura de proyecto y colaboración
- ASUM-DM para fase operacional y mejora continua
- Agile para sprints y entregas incrementales
- Tu propio playbook perfeccionado con experiencia
Fin del Capítulo 11: Metodologías Avanzadas de Ciencia de Datos