TÉCNICAS DE MACHINE LEARNING BASADAS EN ÁRBOLES PARA INVESTIGACIÓN CIENTÍFICA

Del 31 de octubre al 11 de noviembre de 2022 (presencial y remoto)
Profesor: Manuel Mendoza García, Científico Titular

Objetivo del Curso

Aprender a aplicar con R las principales técnicas de Aprendizaje automático basado en árboles en investigación científica, comprendiendo en profundidad cómo funcionan. El curso tiene una fuerte componente práctica (≈ 80%), con más de 50 ejercicios prácticos, procedentes de investigaciones reales, que se van viendo simultáneamente con la teoría.

A quién va dirigido

Investigadores de cualquier nivel académico.

Requisitos

Conocimientos básicos de R y acceso a un ordenador con los programas R y RStudio ya instalados.

Material incluido en el curso

  • Los códigos (explicados) de los más de 50 ejercicios del curso.
  • Guía del curso en Power Point, que incluye la explicación de todos los conceptos fundamentales y la síntesis de los resultados de la mayoría de los ejercicios.

 

Programa

INTRODUCCIÓN

Aprendizaje automático vs. modelado estadístico

¿Qué se puede hacer con r?

 

BLOQUE 1 ÁRBOLES DE REGRESIÓN Y CLASIFICACIÓN

1. Interpretación

2. Representación de los hiperplanos

Ejercicio 1.2.1. Identificar los hábitos de alimentación de Prosthennops xiphodonticus, un pecarí (tayassuido) del Mioceno medio en América del Norte (reconstrucción en figura B). Entrenamiento de diferentes algoritmos que reconozcan los patrones morfológicos que caracterizan la mandíbula de distintos grupos tróficos de ungulados actuales. Representación de los hiperplanos.

Ejercicio 1.2.2. a) Interpretación de un árbol de clasificación (obtenido con rpart) que permite caracterizar a bóvidos frente a cérvidos a partir de su morfología craneodental (predictores numéricos). Comparación de dos formatos de árbol, evaluación, b) Representación de los hiperplanos (ajustando la complejidad óptima con cp).

Ejercicio 1.2.3. a) Interpretación de un árbol de regresión (rpart) entrenado para predecir la masa corporal (BM) de especies extintas a partir de su morfología craneodental (predictores numéricos), b) Efecto de la log-transformación. c) determinación de la masa corporal de tres especies extintas: Dinohippus leidyanus, Stenomylus hitchcocki y Aletomeryx scotti.

Ejercicio 1.2.4. Determinar la comestibilidad o potencial toxicidad (clasificación binaria) de una seta de las familias Agaricus y Lepiota a partir de 22 características (predictores cualitativos) mediante árboles de clasificación. Modificar complejidad con parámetro cp (predictores en próxima diapositiva). a) con rpart (iterativo), b) con evtree (optimizado globalmente).

Ejercicio 1.2.5. a) Entrenar un árbol de clasificación (con rpart) para que reconozca el tipo de ecosistema de una comunidad a partir de su estructura trófica, b) Aplicar a la comunidad de mamíferos de Venta Micena (VM2, Pleistoceno Inferior), c) Representar los hiperplanos de las variables que afecten a Venta Micena.

Ejercicio 1.2.6. a) Entrenar un árbol de clasificación (con rpart) para que reconozca el tipo de cáncer de 934 líneas celulares a partir del grado de expresión de 9071 genes (archivo: E-MTAB-2770-query-results.tpms.tsv).

3. Ventajas

4. Limitaciones

5. Desarrollo

Particionamiento recursivo

Optimizados globalmente con algoritmos evolutivos

6. Clasificación: medidas de pureza como criterio de división

Porcentaje de clasificaciones correctas

Entropía (desorden) como medida de impureza

Índice Gini (desigualdad) como medida de impureza

6.1 Criterio de división para el desarrollo de árboles de clasificación

- Con predictores categóricos

Ejercicio 1.6.1. a) Identificar la 1ª división de un árbol de clasificación, paso a paso con predictores categóricos, b) programación de un modelo predictivo de distribución de una especie ficticia en función de dos variables ambientales cualitativas).

- Con predictores numéricos

Ejercicio 1.6.2. a) Identificar la 1ª división de un árbol de clasificación, paso a paso, de un árbol de clasificación con predictores numéricos, b) programación de un modelo predictivo de distribución de una especie ficticia en función de dos variables ambientales cualitativas y una numérica.

7. Regresión: medidas de pureza como criterio de división

Ejercicio 1.7.1. Identificar la 1ª división de un árbol de regresión, usando predictores numéricos y categóricos. Objetivo: Identificar los principales factores de riesgo de captura accidental de la Pardela Cenicienta (Calonectris diomedea) por la flota palangrera.

8. Evaluación de los modelos

8.1 Clasificación

Porcentaje de clasificaciones correctas.

Coeficiente kappa

8.2 Regresión

Varianza de lo observado explicada por lo predicho (R2)

9. Interacciones Complejas

Ejercicio 1.9.1. Comparación entre regresión múltiple y árboles de regresión para determinar la abundancia de una planta con restricciones ambientales (datos artificiales) cuya abundancia tiene una relación sencilla con las variables ambientales (a) o compleja (b).

10. Importancia de las variables con rpart

11. Equilibrio Sesgo-varianza

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

Observaciones mínimas para división

Observaciones mínimas de nodo terminal

Profundidad máxima del árbol

Nº máximo de nodos terminales

Reducción mínima de error

Factor de coste-complejidad (cp)

13. Validación cruzada

Validación cruzada para estimar la capacidad predictiva de los modelos

Validación cruzada para determinar la complejidad óptima de un modelo

13.1 Validación cruzada de k-folds

13.2 Validación cruzada aleatoria

Determinación de la complejidad óptima con rpart

Ejercicio 1.13.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 (datos reales), con el comando printcp de rpart, basado en el cálculo de 10-folds cross-validation; b) testado de la capacidad predictiva por validación cruzada aleatoria.

Ejercicio 1.13.2. a) Determinar la complejidad óptima de un árbol de clasificación para determinar el tipo de cáncer de 934 líneas celulares a partir del grado de expresión de 9071 genes (archivo: E-MTAB-2770-query-results.tpms.tsv).

Ejercicio 1.13.3. a) Determinar la complejidad óptima de un árbol de clasificación para determinar el sitio de localización de la proteína, dentro de la célula, en la levadura Saccharomyces cerevisiae, usando para ello los 8 descriptores del sistema de anotaciones Yeast Protein Database (YPD), (datos reales), con el comando printcp de rpart, basado en 10-folds cross-validation; b) testado de la capacidad predictiva por validación cruzada aleatoria.

13.3. Validación cruzada dejando uno fuera (leave-one-out cross validation, LOOCV)

Ejercicio 1.13.3. a) Evaluación con LOOCV de la capacidad predictiva de un árbol de clasificación desarrollado para determinar el tipo de ecosistema (clasificación multiclase) que presentaba la comunidad de mamíferos de Venta Micena (Pleistoceno Inferior) a partir de su estructura trófica; b) programación de una LOOCV para identificar la complejidad (cp) óptima.          

13.4. Validación cruzada con datos estructurados (VC por bloques, VCPB)

Validación cruzada por bloques cuando hay autocorrelación espacial

Ejercicio 1.13.4. Estimar la riqueza de especies invertrívoras a partir del clima, a escala global. a) Determinar la complejidad óptima de un modelo de árboles de regresión con el comando printcp de rpart, basado en el cálculo de 10-folds VC. b) Determinar la complejidad óptima a partir de la capacidad predictiva sobre un solo bloque, c) determinar la importancia de las variables.

Ejercicio 1.13.5. a) Evaluación con VCPB (insensible a la autocorrelación espacial) de la capacidad predictiva de un modelo desarrollado para determinar y predecir el tipo básico de estructura trófica (TS) de una comunidad a partir de su clima; b) Programación de VCPB para identificar la complejidad (cp) óptima; c) obtener la importancia de las variables.

Ejercicio 1.13.6. a) Evaluación con printcp de la capacidad predictiva de un modelo (optimizado con 10-folds CV) desarrollado para predecir la presencia o ausencia (clasificación binaria) del avión roquero (Ptynoprogne rupestris) a partir de variables predictoras ambientales. b) Evaluación con VCPB, cuando puede haber autocorrelación espacial

Ejercicio 1.13.7. a) Determinar la complejidad óptima de un árbol de clasificación para determinar el tipo de cáncer de 934 líneas celulares a partir del grado de expresión de 9071 genes (archivo: E-MTAB-2770-query-results.tpms.tsv).

Validación cruzada por bloques cuando hay autocorrelación filogenética

Ejercicio 1.13.8. a) Evaluación con VCPB (cuando hay autocorrelación filogenética) de la capacidad predictiva de un modelo desarrollado para predecir la masa corporal de las especies a partir de su morfología craneodental. Comparación con 10-folds VC. b) Programación de VCPB cuando hay autocorrelación filogenética (a nivel de familia) para identificar la complejidad (cp) óptima.

14. Coste diferencial y datos descompensados (unbalanced data)

Coste diferencial

Categorías infra-representadas

- Modificación el umbral de corte

- Ponderación de falsas ausencias o muestras infrarrepresentadas

- 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 su ausencia. Penalizar las falsas ausencias (FA) a) modificando el umbral de corte, b) con una matriz de pérdidas (loss matrix), c) con un vector de ponderación, d) con remuestreo. e) Evaluar con remuestreo el modelo con VCPB cuando puede haber autocorrelación espacial.

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 de capturas accidentales mediante árboles de clasificación (binaria) tratando la presencia de categorías “súper” infra-representadas (las presencias); a) con una matriz de pérdidas (loss matrix), b) con un vector de ponderación (weights). Variable objetivo: 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 con árboles de clasificación los factores de impacto ambiental que contribuyen a su depauperación, tratando la presencia de categorías infra-representadas: a) modificando el umbral de corte, b) con vector de ponderación, c) testando la verdadera capacidad predictiva con VC aleatoria con remuestreo.  

Ejercicio 1.4.4. Determinar la familia a partir de la morfología craneodental con árboles de clasificación estimando la capacidad predictiva con LOOCV; a) sin remuestrear; b) remuestreando; c) determinar la familia de dos especies extintas: Dinohippus leidyanus y Stenomylus hitchcocki.

 

BLOQUE 2 MÉTODOS DE AGREGACIÓN DE ÁRBOLES

1. Bootstrap o Bagging (Bootstrap aggregating)

Ejercicio 2.1.1. a) Predecir la riqueza de especies invertrívoras (IFd) a partir del clima con árboles de regresión reduciendo la varianza (error por imprecisión) mediante promediado; b) programación de un bootstrap; c) Testado del bootstrap con un bloque; d) bootstrap con el paquete ipred.

2. Random forests

Hiperparámetros con el paquete randomForest

- Número de árboles (ntree)

- Número de predictores disponibles para cada división (mtry).

- Número mínimo de observaciones de los nodos terminales

- Máximo número de nodos en cada árbol (maxnodes).

Ejercicio 2.2.1. Predecir la riqueza de especies invertrívoras a partir del clima, a escala global, con random forests para regresión (paquete randomForest), b) optimizar los hiperparámetros, c) testar datos inmunes a la autocorrelación espacial.

Ejercicio 2.2.2. Programación de un Random forests.

Regresión

Ejercicio 2.2.3. Estimar con random forests para regresión la riqueza de especies de aves invernantes. Análisis de los resultados de un random forests con el paquete randomforest.

Datos desequilibrados con paquete randomForest

Clasificación binaria

Ejercicio 2.2.4. Predecir la presencia o ausencia del avión roquero (Ptynoprogne rupestris) mediante random forests para clasificación binaria a partir de variables predictoras ambientales; a) directo; b) equilibrado con sampsize para que las presencias pesen tanto como las ausencias (testado con VCPB). Comparar con árboles de clasificación.

 Clasificación multiclase

Ejercicio 2.2.5. a) Determinar el tipo de ecosistema de la comunidad de mamíferos de Venta Micena a partir de su estructura trófica mediante random forests para clasificación multiclase, b) Evaluación de la capacidad predictiva del random forests con leave-one-out, c) ponderando la categoría OSv para que sea considerada.

Ejercicio 1.13.2. a) Entrenar un algoritmo de random forests para diagnosticar el tipo de cáncer a partir del grado de expresión de ciertos genes (archivo: E-MTAB-2770-query-results.tpms.tsv).

Ejercicio 2.2.6. a) Predecir el tipo de organización trófica esperable en un lugar a partir de su clima mediante random forests para clasificación multiclase; Comparar resultados con árboles, b) Evaluación de la capacidad predictiva del random forests con VCPB cuando puede haber autocorrelación espacial.

3. Boosted trees para regresión y clasificación

Ventajas

Desventajas

3.1 AdaBoost (AdaptativeBoosting)

Ejercicio 2.3.1. Aplicación de AdaBoost para clasificación, a un ejemplo muy sencillo (ficticio): modelo predictivo de distribución de una especie con 10 muestras y 2 variables predictoras. a) Elección y desarrollo de los clasificadores débiles (weak learners); b) Obtención del peso de cada clasificador (at); c) Predicción (H)

3.2 Gradient descent Boosting (GDB)

Tasa de aprendizaje o factor de contracción (learning rate)

Gradient Boosting estocástico

Paquete GBM

Hiperparámetros

- shrinkage (learning rate o tasa de aprendizaje, 0 - 1)

- n.trees (nº de árboles o iteraciones)

- interaction.depth (profundidad de los árboles)

- n.minobsinnode (nº mínimo de muestras en los nodos terminales)

- bag.fraction (ratio de muestras para entrenar los algoritmos)

Regresión

Ejercicio 2.3.2. Estimar con gradient boosting para regresión la riqueza de especies de aves invernantes a partir de predictores ambientales.

Clasificación binaria

Ejercicio 2.3.3. Predecir la presencia o ausencia del avión roquero (Ptynoprogne rupestris) mediante gradient boosting para clasificación binaria, a partir de variables predictoras ambientales, evaluándolo con VCPB, cuando puede haber autocorrelación espacial, remuestreando para que las presencias pesen tanto como las ausencias.

Clasificación multiclase

Ejercicio 2.3.4. Determinar el tipo de ecosistema de la comunidad de mamíferos de Venta Micena a partir de su estructura trófica mediante gradient boosting para clasificación multiclase

4. Xgboost (eXtreme Gradient Boosting)

Regularización

- alfa (regularización de lazo)

- lambda (regularización de cresta)

- gamma (multiplicador lagrangiano)

- Hiperparámetros del paquete xgboost

- eta

- nrounds

- max_depth

- subsample

- colsample_bytree

- early_stopping_rounds

Optimización de los hiperparámetros

4.1 XgBoost con predictores cualitativos (One-hot-encoding)

Regresión

Ejercicio 2.3.5. a) Estimar la riqueza de especies de aves invernantes con XgBoost a partir de predictores ambientales (regresión). b) Comparar resultados con árboles de regresión, random forests y gradient boosting.

Clasificación binaria

Ejercicio 2.3.6. a) Predecir con XgBoost la presencia o ausencia (clasificación binaria) del avión roquero (Ptynoprogne rupestris) a partir de variables predictoras ambientales. a) Evaluándolo con VCPB, cuando existe el riesgo de autocorrelación espacial; b) ponderando, simultáneamente, las presencias para que pesen tanto como las ausencias; c) Comparar resultados con árboles de regresión, random forests y gradient boosting.

Clasificación multiclase

Ejercicio 2.3.7. a) Determinar el tipo de ecosistema (clasificación multiclase) de la comunidad de mamíferos de Venta Micena a partir de su estructura trófica mediante XgBoost.

Ejercicio 2.3.8. a) Entrenar un algoritmo XgBoost para diagnosticar el tipo de cáncer a partir del grado de expresión de ciertos genes (archivo: E-MTAB-2770-query-results.tpms.tsv).

Ejercicio 2.3.9. Determinar el sitio de localización de la proteína (clasificación multiclase), dentro de la célula de la levadura Saccharomyces cerevisiae. Comparar CT ej. anterior con: a) random forests; b) GBM; c) XgBoost, d) ¿Cuál es la diferencia entre un loop de 200 árboles, un bootstrap de 200 árboles, un random forests de 200 árboles, un gradient boosting con 200 iteraciones (árboles) y un XgBoost, también con 200 iteraciones? 

4.2 XgBoost con predictores cualitativos (One-hot-encoding)

Ejercicio 2.3.9. Determinar la comestibilidad o potencial toxicidad de una seta de las familias Agaricus y Lepiota (clasificación binaria) a partir de 22 características (predictores cualitativos convertidos en numéricas (binomiales) mediante One-hot-encoding.  Comparar CT (ej. Anterior) con: a) random forests, b) GBM y c) XgBoost. d) Aplicar XgBoost a nuevos datos.

Ejercicio 2.3.10. Comparación de la capacidad de CT (a), random forests (b) y XgBoost (c) para predecir la depauperación de comunidades de zonas frías y templadas, a partir de factores de impacto humano, modificando el umbral de corte para compensar la infrarrepresentación de los depauperados.

5. Importancia de las variables

5.1 Árboles de decisión

Con el paquete rpart

5.2 Random forests

Con el paquete randomForest

- Incremento relativo del error por permutación

- Incremento de la pureza de los nodos

Con el paquete iml

- FeatureImp

5.3 Boosted trees

Con paquete gbm

- Influencia relativa

Test de permutación

5.4 XgBoost

Con el paquete XgBoost

- Gain

- Cover

- Frequency

Con paquete XgBoost

Ejercicio 2.5.1. Representa la contribución de las variables predictoras al estimar la riqueza de especies de aves invernantes, a) con árboles de regresión, b) random forests, c) GBM, d) XgBoost.

Ejercicio 2.5.2. a) Determinar con distintos tipos de algoritmos los genes más importantes para la diagnosis del tipo de cáncer a partir del grado de expresión de ciertos genes.

6. Efecto de las variables predictoras

6.1 Gráficos de dependencia parcial (Partial dependence plots, PDP)

6.2 Curvas de expectativas condicionales individuales (ICE)

6.3 Gráficos de efectos locales acumulados (ALE) alternativa a los PDP

7. Interacciones entre variables

7.1. Representación visual mediante PDPs combinados

7.1 Estadístico H

Ejercicio 2.7.1. Análisis e interpretación de los resultados (Importancia, PDP e interacciones) de un random forests para regresión de una base de datos artificial (no realista) cuya variable objetivo tiene una relación conocida con lo predictores. a) Efecto de un solo predictor con una relación sencilla; Efecto de 2 predictores no correlacionados; c) Efecto de 1 predictor correlacionado con otro.

Árboles de decisión vs. Random forests ¿caja blanca y caja gris?

Ejercicio 2.7.2. a) Determinar con árboles de regresión y random forests la abundancia de una planta (ficticia) con restricciones ambientales, con muestras y variables artificiales, (no correlacionadas), b) Importancia y efecto de los predictores (PDPs). 

Random forests ¿caja gris? (Importancia y efecto de las variables predictoras)

Ejercicio 2.7.3. Caracterizar mediante árboles de regresión y random forests el nicho climático óptimo de un género de planta tropical, a partir de la distribución global de su abundancia (artificial). Datos climáticos reales (correlacionados), 13178 celdas de 1º x 1º distribuidas globalmente).

Gradient boosting (Importancia y efecto de las variables predictoras)

Ejercicio 2.7.4. Predecir la depauperación de comunidades de zonas frías y templadas, a partir de factores de impacto humano; a) comparación con árboles de clasificación y análisis e interpretación (importancia, PDP e interacciones entre las variables) de random forests y gradient boosting.

XgBoost (Importancia y efecto de las variables predictoras)

Regresión  

Ejercicio 2.7.5. Análisis e interpretación (Importancia, PDP e interacciones) de algoritmos de RF y XgBoost, entrenado para predecir la abundancia del avión roquero (Ptynoprogne rupestris) a partir de variables predictoras ambientales. a) Importancia de las variables; b) Efecto de las variables; c) interacciones entre variables.

Clasificación binaria  

Ejercicio 2.7.6. Análisis e interpretación (Importancia, PDP e interacciones) de los algoritmos de random forests y XgBoost, para predecir la presencia o ausencia del avión roquero (Ptynoprogne rupestris) a partir de variables predictoras ambientales.

Clasificación multiclase

Ejercicio 2.7.7. Análisis e interpretación (importancia, PDP e interacciones) del algoritmo de random forests, para determinar el tipo de ecosistema de la comunidad de mamíferos de Venta Micena a partir de su estructura trófica.

Ejercicio 2.7.8. a) Analizar cómo interactúan los genes, entre sí y con ciertos hábitos (como tabaquismo) para el desarrollo de ciertos tipos de cáncer.

Ejercicio 2.7.9. Predecir la distribución de la riqueza de especies invertrívoras en 2070 a partir de un escenario de cambio climático RCP 8.5 (datos reales).

Fecha

  • Lunes, 31 Octubre 2022
  • Viernes, 11 Noviembre 2022

Horario

De 16:00h a 20:00h (Zona horaria de Madrid)

Ubicación

Alumnos presenciales: Sala de juntas del Museo

Alumnos en remoto: por Zoom

Plazas

15 presenciales y 25 en acceso remoto a través de Zoom

Tarifas

320€ Amigos del Museo 300€ (40 horas lectivas)

Reservas en: mcnc104@mncn.csic.es

Información contenidos: mmendoza@mncn.csic.es

Inscripción

Galería multimedia

Machine web