Técnicas Avanzadas de Machine Learning para Investigación Científica (I): Árboles de Decisión

Profesor: Manuel Mendoza García, Científico Titular del CSIC 

Objetivo de los Cursos

Aprender a aplicar con R las principales técnicas de Aprendizaje automático en investigación científica, comprendiendo en profundidad cómo funcionan. El curso tiene una fuerte componente práctica (≈ 80%), con 82 ejercicios prácticos en total, procedentes de investigaciones reales, cuya programación, resolución e interpretación se va viendo simultáneamente con la teoría.

A quién va dirigido

Investigadores de cualquier nivel académico.

Requisitos

Conocimientos básicos de R.

Material incluido en el curso

Los códigos explicados de los 30 ejercicios del BLOQUE 1.

Guía del curso con los principales conceptos en Power Point

Programa

Introducción

  - Aprendizaje automático vs. modelado estadístico Aprendizaje supervisado (supervised Learning)

  - Aprendizaje no supervisado (unsupervised learning)

  - Aprendizaje por refuerzo

  - Otras formas de aprendizaje computacional

  Relación entre Inteligencia Artificial (IA), Machine Learning (ML) y Deep Learning (DL) 

BLOQUE 1. Árboles de Decisión

1.    Interpretación

2.    Representación de los hiperplanos

Ejercicio 1.2.1. a) Entrenar un árbol de clasificación con paquete rpart, para caracterizar el tipo de estructura trófica de una comunidad de mamíferos, Húmeda Tropical (HT) vs. Estacional Tropical (ST) a partir del clima (predictores numéricos), b) aplicarlo a una celda con estructura trófica desconocida (unknTS) y representar los hiperplanos implicados, c) Entrenar un árbol de clasificación con paquete evtree y representar los hiperplanos implicados en 2D y 3D. Script TS.

Ejercicio 1.2.2. a) Entrenar un árbol de clasificación, con rpart, que reconozca a bóvidos frente a cérvidos a partir de su morfología craneodental (predictores numéricos), b) aplicarlo al venado acuático chino (Hydropotes inermis) y representar los hiperplanos implicados, c) averiguar las muestras que cayeron en cada nodo. Script Morph.

Ejercicio 1.2.3. a) Interpretación de un árbol de regresión (obtenido con rpart y cp=0.01) entrenado para predecir la masa corporal (BM) de especies extintas a partir de su morfología craneodental (predictores numéricos), b) Identificar qué muestras cayeron en cada nodo; c) determinación de la masa corporal de tres especies extintas: Dinohippus leidyanus, Stenomylus hitchcocki y Aletomeryx scotti. Script Morph.

Ejercicio 1.2.4. a) Entrenar un árbol de clasificación multiclase (con evtree) que caracterice el tipo de estructura trófica de una comunidad a partir de su clima, b) Representar los hiperplanos de las variables que caracterizan fundamentalmente a las comunidades de zonas cálidas.

Ejercicio 1.2.5. Determinar mediante árbol de clasificación binaria la comestibilidad o potencial toxicidad de una seta a partir de 22 predictores categóricos, tomando como muestras 8124 ejemplares encontrados de las familias Agaricus y Lepiota. Modificar la complejidad con cp. a) Con rpart, b) averiguar las muestras que cayeron en cada nodo y el nodo en el que cayeron unas muestras concretas. Script mushroom.

Ejercicio 1.2.6. a) Entrenar un árbol de clasificación que permita determinar el sitio de localización de una proteína en la levadura Saccharomyces cerevisiae, a partir de su secuencia de aminoácidos, caracterizada a partir de 8 descriptores (numéricos) del sistema de anotaciones Yeast Protein Database, b) Averiguar el sitio de localización de 3 nuevas proteínas (newprots) y las probabilidades asociadas a cada localización.  Script yeast.

Ejercicio 1.2.7. Solos a) Entrenar un árbol de clasificación multiclase (con rpart) para que reconozca el tipo de ecosistema de una comunidad a partir de su estructura trófica (variables numéricas) (ref. Ej. 1.2.6), b) Determinar el tipo de ecosistema de la comunidad de mamíferos de Venta Micena (VM2, 1,5 Ma, Pleistoceno Inferior), c) determinar el nodo en el que cae VM a partir del árbol y las probabilidades de pertenencia asociadas a cada tipo de ecosistema. Script AfroNPs.

Ejercicio 1.2.8. a) Diagnosticar si un paciente identificado como JM padece la enfermedad de Alzheimer, a partir de un árbol de clasificación (binaria) entrenado para ello con 130 biomarcadores (numéricos) en sangre (impaired = enfermo; control = sano), b) determinar la probabilidad asociada a dicha diagnóstico. Script Alzheimer.

Ejercicio 1.2.9. Solos a) Inferir el nicho trófico, de una especie de museo desconocida (spcmus) a partir de su morfología, utilizando un árbol de clasificación entrenado para caracterizar a las aves herbívoras acuáticas (H.Aq) respecto a las herbívoras terrestres (H.Tr), b) determinar el nodo en el que cae a partir del árbol y las probabilidades de pertenencia asociadas a cada tipo de ecosistema. Script AVONETNchTrof

Ejercicio 1.2.10. Entrenar un árbol de regresión (con rpart) para determinar el valor calorífico superior (HHV) de diferentes combustibles de biomasa a partir de su contenido en carbono, hidrógeno, oxígeno, nitrógeno y azufre (con cp=0.001). Script Biomass.

3.    Ventajas

4.    Limitaciones

5.    Desarrollo

   5.1 Particionamiento recursivo

   5.2 Optimizados globalmente

Ejercicio 1.5.1. Determinar la comestibilidad o potencial toxicidad de una seta de las familias Agaricus y Lepiota con un árbol de clasificación iterativo (con rpart) y otro optimizado globalmente (con evtree). Ambos deben tener CC =100%. Script mushroom.

6.    Medidas de impureza como criterio de división 

   6.1 Impureza en Clasificación

Ejercicio 1.6.1. Programar (sin librería) un árbol de clasificación con 2 predictores categóricos. Identificación de la 1ª división paso a paso.

Ejercicio 1.6.2. Solos a) Calcular la Ganancia de Información (GI) basada en la entropía de la única división posible (cálculos en formato R).

Ejercicio 1.6.3. Programar (sin librería) un árbol de clasificación con predictores categóricos y numéricos, identificando la 1ª división paso a paso. Script Entropía

   6.2 Impureza en Regresión

Ejercicio 1.6.4. Programar (sin librería) un árbol de regresión con predictores numéricos y categóricos. Identificación de la 1ª división, paso a paso. Objetivo: Identificar los principales factores de riesgo de captura accidental de la Pardela Cenicienta (Calonectris diomedea) por la flota palangrera (datos reales). Script Calonectris.

7.    Evaluación de los modelos

8.    Interacciones Complejas

Ejercicio 1.8.1. Entrenar un árbol de regresión para determinar la abundancia de una planta cuya relación con las variables ambientales es a) sencilla y b) compleja, por restricciones ambientales (datos artificiales). Script PDP2.

9.    Importancia de las variables con rpart

Ejercicio 1.9.1. Determinar la importancia de la exposición al tabaquismo en la función respiratoria de los niños (volumen respiratorio forzado, FEV) en relación con otros factores como la edad, la altura o el género (0=femenino, 1=masculino). Script FEV.

10.  Equilibrio Sesgo-Varianza

Ejercicio 1.10.1. Comparar los tipos de error, por sesgo y por varianza, de modelos lineales y árbol de regresión para predecir la riqueza de especies invertívoras (IFd) a partir del clima. Script CliMod.

11.  Control del tamaño del árbol (complejidad) con rpart

12.  Validación cruzada (VC)

   12.1 VC para estimar la capacidad predictiva de los modelos.

  - Validación cruzada k-folds (k-folds CV)

  - k-folds acumulada

  - Validación cruzada aleatoria (VCA)

  - Fuga de Información (Data Leakage)

12.2  VC para determinar la complejidad óptima con que entrenar un modelo

  - Determinación de la complejidad óptima con rpart y la función printcp

Ejercicio 1.12.1. a) Determinar la complejidad óptima de un árbol de regresión entrenado para estimar la riqueza de especies de aves invernantes a partir de ciertos predictores ambientales con cptable, basado en el cálculo de 10-folds CV b) Estimar con el paquete caret la capacidad predictiva de un árbol con esa complejidad óptima utilizando 5-folds CV, c) Inferir (con el árbol definitivo) la riqueza de especies en una nueva localidad (NvLoc). Script Numspc.

Ejercicio 1.12.2. a) Determinar la complejidad óptima de un árbol de clasificación (binaria) entrenado para diagnosticar la enfermedad de Alzheimer, a partir de 130 biomarcadores en sangre (impaired = enfermo; control = sano), con cptable, (10-folds CV); b) Estimar la capacidad predictiva de un árbol con esa complejidad óptima programando una 5-folds CV. Script Alzheimer.

Ejercicio 1.12.3. a) Determinar con cptable (10-folds CV), la complejidad optima de un árbol de clasificación (multiclase) entrenado con rpart para determinar el tipo básico de cáncer (I, II o III) a partir del grado de expresión de 47 variantes genéticas (originalmente 54.000) en 933 líneas celulares, b) Estimar su capacidad predictiva programando una 10-folds CV. Script Cáncer.

Ejercicio 1.12.4. Solos a) Determinar con cptable (10-folds CV), la complejidad optima de un árbol de clasificación (multiclase) entrenado con rpart para predecir el estilo de vida de las aves a partir de su morfología (10 predictores numéricos), b) estimar su capacidad predictiva también con 10-folds CV, c) entrenar un árbol con cp=0.005 (analizable) y averiguar qué especies acuáticas (Aq) caen en el nodo 4 (Ref. Ejercicio 1.2.5. script mushroom). Script AVONETLifestl

   - VC dejando uno fuera (leave-one-out cross validation, LOOCV)

Ejercicio 1.12.5. a) Entrenar un árbol de clasificación multiclase con rpart y cp por defecto (0.01). para que reconozca el tipo de ecosistema de una comunidad a partir de su estructura trófica (variables numéricas);  b) Determinar el tipo de ecosistema de la comunidad de mamíferos de Venta Micena (VM2, Pleistoceno Inferior); c) Identificar la complejidad (cp) óptima con LOOCV; d) Determinar el tipo de ecosistema de Venta Micena (VM2, Pleistoceno Inferior)    y las probabilidades de pertenencia asociadas a cada tipo de ecosistema. Utilizar el modelo optimizado. Script AfroNPs.

  - VC por bloques (VCPB) para datos estructurados 

 - Datos estructurados espacialmente.

Ejercicio 1.12.6. Solos a) Entrenar un árbol de regresión optimizado con cptable (10-folds CV) con el que estimar la riqueza de especies invertívoras a partir del clima, a escala global, b) Los datos están estructurados espacialmente, por lo que hay que estimar su verdadera capacidad predictiva con un bloque independiente (América). Script ClimMod.

Ejercicio 1.12.7. a) Entrenar un árbol de regresión con el que estimar la riqueza de especies invertívoras a partir del clima, estimando previamente la complejidad óptima con un bloque independiente (América) y comparar los árboles y su capacidad predictiva con los optimizados con 10-folds CV en el ejercicio anterior; b) analizar el árbol (simplificado si es demasiado complejo); c) Representar las celdas en las que se predicen más y menos especies. Script ClimMod.

Ejercicio 1.12.8. Predecir el tipo básico de estructura trófica (TS1 a TS6) de una comunidad a partir de su clima. a) Representar antes la distribución geográfica de las 6 categorías y b) entrenar un árbol de clasificación  optimizándolo con 10-folds CV (por defecto) c) evaluar su capacidad predictiva asumiendo que los datos están  estructurados espacialmente (con VCPB), utilizando 36 franjas longitudinales de 10º y representar la distribución geográfica de las predicciones, d) programar una VCPB para identificar la complejidad (cp) óptima, e) analizar el árbol (simplificado si es demasiado complejo), f) obtener y representar la importancia de las variables. Script EFWOGE.

Ejercicio 1.12.9. Predecir la presencia o ausencia del avión roquero (Ptynoprogne rupestris – variable ptyrup) a partir de variables predictoras ambientales. a) Representar antes la distribución geográfica de la especie; b) entrenar un árbol e identificar la complejidad (cp) óptima con 10-folds CV (por defecto), c) evaluar con VCPB su capacidad predictiva asumiendo que los datos están estructurados espacialmente, utilizando 8 franjas longitudinales de aproximadamente 1.5º;  d) Programar una VCPB para  identificar la complejidad (cp) óptima, e) Representar las predicciones del modelo optimizado con VCPB; f) obtener un árbol con todas las muestras y la complejidad óptima y analizarlo; g) obtener y representar la importancia de las variables. Script AvesCls.

  - Datos estructurados temporalmente

  - Datos estructurados de filogenéticamente

Ejercicio 1.12.10. Predecir la masa corporal de las especies a partir de su morfología craneodental, a) entrenar un árbol de regresión e identificar la complejidad (cp) óptima con 10-folds CV (por defecto), b) testar su capacidad predictiva con LOOCV, c) testar su capacidad predictiva sobre especies de familias poco o nada representadas en la base de datos, asumiendo que los datos están estructurados filogenéticamente a nivel de familia (VCPB), d) identificar la complejidad (cp) óptima con VCPB, e) obtener un árbol con todas las muestras y la complejidad óptima, representarlo y analizarlo, f) determinar la masa corporal de las especies extintas: Dinohippus leidyanus, Stenomylus hitchcocki y Aletomeryx gracilis. Script Morph.

Ejercicio 1.12.11. Predecir el estilo de vida de las aves a partir de su morfología. a) Entrenar un árbol de clasificación optimizado con 10-folds CV (printcp); b) asumiendo que los datos están estructurados filogenéticamente a nivel de Orden, evaluar con VCPB su verdadera capacidad predictiva sobre especies de órdenes poco o nada representados, c) identificar la complejidad (cp) óptima con VCPB. Script AVONETLifstl

  - Datos estructurados de otras formas

Ejercicio 1.12.12. 931 líneas celulares cancerígenas, de 160 tipos de cáncer que se agrupan en 3 categorías (I, II o III). a) Entrenar un árbol de clasificación que permita predecir la categoría a  partir del grado de expresión de 108 variantes genéticas, con la complejidad (cp) óptima obtenida con 10-folds CV, representarlo y analizarlo; b) estimar su verdadera capacidad predictiva con VCPB (archivo: E-MTAB-2770-query-results.tpms.tsv). Script Cáncer.

14.  Coste diferencial y categorías descompensadas (unbalanced data)

  - Coste Diferencial

  - Categorías desequilibradas

   14.1    Modificación del umbral de corte

   14.2 Vector de ponderación (weights)

   14.3 Remuestreo.

Ejercicio 1.14.1. Predecir la presencia o ausencia del avión roquero (Ptynoprogne rupestris) a partir de variables predictoras ambientales. Su hallazgo en determinado lugar implica su presencia, pero no encontrarla no implica que no esté. a) Entrenar un árbol de clasificación, evaluar el rendimiento sobre las muestras de entrenamiento sin tratar la presencia de categorías infra-representadas, b) penalizando los falsos negativos (falsas ausencias) ajustando el umbral de  corte a partir del umbral óptimo ROC-AUC (representar sus “predicciones”), c) penalizando los falsos negativos con vector de ponderación, d) con remuestreo e) Estimar la capacidad predictiva por VCPB (datos estructurados espacialmente) de un algoritmo que trata la existencia de categorías infra-representadas  (y además con coste diferencial) ponderando con el comando weights.  Script AvesCls.

Ejercicio 1.14.2. Identificar los principales factores de riesgo de captura accidental de la Pardela Cenicienta (Calonectris diomedea) por la flota palangrera a partir de la presencia o ausencia (en vez de abundancia) de capturas accidentales mediante árbol de clasificación (binaria) a) sin tratar, b) tratando la presencia de categorías “súper” infra-representadas con un vector de ponderación (weights); c) analizar el árbol: Calonectris. Script Calonectris.

Ejercicio 1.14.3. De 8685 comunidades de zonas continentales no tropicales (celdas 1º x 1º), menos de un 10% están depauperadas. Determinar los factores de impacto que contribuyen a ello con un árbol de clasificación a) sin tratar la presencia de categorías infra-representadas y b) tratando la presencia de categorías infra-representadas con un vector de ponderación, c) testar la verdadera capacidad predictiva con VC aleatoria con vector de ponderación (weights). Script Human impact.

Fecha

  • Lunes, 23 Septiembre 2024
  • Miércoles, 02 Octubre 2024

Horario

23 septiembre a 2 octubre (L-J)

6 días, 18 horas lectivas

Horario Clases en directo: 16.30 a 19.30h

Clases en diferido: disponibles online hasta el 30 de noviembre

Ubicación

Sala de Juntas del Museo y online

Plazas

20 plazas presenciales

50 plazas en remoto

RESERVA DE PLAZA

mcnc104@mncn.csic.es

CONSULTAS

mmendoza@mncn.csic.es

Los participantes recibirán un certificado a la finalización del curso.

Tarifas

150 euros

(140 euros Amigos del Museo)

Inscripción