Técnicas Avanzadas de Machine Learning II: Métodos de Ensamble

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.

Haber cursado el módulo Técnicas Avanzadas de Machine Learning I: Árboles de Decisión ó alguno de los cursos ofertados en convocatorrias anteriores, puesto que cada uno de ellos se apoya en los conocimientos del anterior. Los alumnos recientes pueden saltarse los dos primeros, para hacer el 3º, aunque el segundo está bastante ampliado y mejorado. Los alumnos que hicieron el curso de menos de 40 horas deberían hacer el 2, también, si quieren hacer el 3.

Material incluido en el curso

Los códigos (explicados) de los 82 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

TÉCNICAS AVANZADAS DE MACHINE LEARNING II

Métodos de agregación de árboles

1. Bagging (bootstrap aggregation) con árboles de decisión

Ejercicio 2.1.1. Demostración experimental de que, al hacer la media de predicciones con alta varianza, ésta se reduce considerablemente, testando sobre un bloque independiente espacialmente. a) Predecir la riqueza de especies invertrívoras (IFd) a partir del clima con AdR reduciendo la varianza (error por imprecisión) mediante promediado, b) programación paso a paso (sin librería) de un Random Forest. Script CLiMod

2. Random forests

Hiperparámetros (paquete randomForest)

Sobreajuste con Random Forest

2.1 Regresión (Random forests)

Ejercicio 2.2.3. Estimar con RF la riqueza de especies de aves invernantes (regresión) a partir de predictores ambientales (datos reales) e inferir la riqueza de especies en una nueva localidad (NvLoc). Script Numspc.

2.2 Clasificación binaria (Random forests)

Ejercicio 2.2.5. Predecir la presencia o ausencia del avión roquero (Ptynoprogne rupestris) mediante RF para clasificación binaria a partir de variables predictoras ambientales, a) directo, b) equiparando las categorías con sampsize para que las presencias pesen tanto como las ausencias, c) testar con VCPB equiparando con sampsize, d) dándole el doble de peso a las presencias que a las ausencias. d) comparar con AdC (Ejercicio 1.14.1). Script AvesCls.

Ejercicio 2.2.6. Determinar el tipo de hábitat (Forest, Grassland, Shrubland, Wetland o Woodland) al que están adaptadas las aves a partir de su morfología. a) Entrenar un algoritmo de RF (clasificación multiclase) que permita inferir el tipo de hábitat (ecsta) de una especie a partir de morfología sin equilibrar las categorías de la variable objetivo (No eq), b) Estimar de la capacidad predictiva del modelo para cada categoría, c) Repetir apartados a y b equilibrando las categorías (Eq), d) Obtener la predicción OOB para el elemento 128, e) Determinar el tipo de hábitat de Ochthoeca fumicolor con este último modelo. Script AVONET

2.3 Clasificación multiclase (Random forests)

Ejercicio 2.2.7. (Solos) Determinar el tipo de ecosistema de la comunidad de mamíferos de Venta Micena a partir de su estructura trófica. a) Entrenar un algoritmo de RF (clasificación multiclase) que permita inferir el tipo de ecosistema (ecsta) de una comunidad a partir de la estructura trófica (nº de especies de cada grupo trófico) sin equilibrar las categorías de la variable objetivo (No eq.), b) Estimación de la capacidad predictiva del modelo para cada categoría, c) Repetir apartados a y b equilibrando las categorías (Eq.), d) Obtener la predicción OOB para el elemento 18º, e) Determinar el tipo de ecosistema de Venta Micena (VM) con este último modelo, f) Comparar resultados con AdC (bloque 1). Script AfroNPs

3. Boosted trees (BT)

3.1 AdaBoost (AdaptativeBoosting)

Ejercicio 2.3.1. Desarrollo de un AdaBoost paso a paso, aplicado a un ejemplo extraordinariamente sencillo (ficticio): p. ej.: un modelo predictivo de distribución de una especie o el desarrollo de una prueba diagnóstico con 10 muestras y 2 variables predictoras (irreal en ambos casos). 3 fases: 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)

Gradiente de una función escalar

Gradiente de una función de pérdida (FdP)

Error cuadrático medio (mse) como FdP para regresión

Ejercicio 2.3.3. Programar paso a paso (sin librería) un GBM para regresión, que prediga la riqueza de especies invertívoras (IFd) a partir del clima, utilizando distintas tasas de aprendizaje (0.1 ) y mse 0.01 como FdP. Script CLiMod.

Ejercicio 2.3.4. Programar con la librería GBM un algoritmo para regresión, que prediga la riqueza de especies invertívoras (IFd) a partir del clima, utilizando distintas tasas de aprendizaje (0.1 y 0.01). Script CLiMod.

Ejercicio 2.3.5. Programar paso a paso (sin librería) un GBM para clasificación binaria que prediga las condiciones que llevan a la depauperación (Dep) de las comunidades de zonas frías y templadas, a partir de factores de impacto humano, utilizando una FdP logarítmica (-[y * log(p) + (1-y) * log(1-p)). Entrenar con un 25% de las muestras y testar con el 75% restante. Script Human Impact.

Ejercicio 2.3.6. Programar con la librería GBM un algoritmo para clasificación binaria que prediga las condiciones que llevan a la depauperación (Dep) de las comunidades de zonas frías y templadas, a partir de factores de impacto humano. Entrenar con un 25% de las muestras y testar con el 75% restante. Script Human Impact.

3.2 GBM estocástico

3.3 Paquete GBM (gradient boosting machine)

3.4 Optimización de los hpps

Rejilla de búsqueda (grid)

Optimización Bayesiana

Ejercicio 2.3.7. Entrenar un algoritmo de GBM para regresión con el que estimar la riqueza de especies de aves invernantes a partir de predictores ambientales. Entrenar con un 90% de las muestras y testar con el 10% restante. a) Sin optimización, b) Optimización con una grid aleatoria, c) Optimización bayesiana, d) Estimar la riqueza de especies en una nueva localidad (NvLoc). Script Numspc.

Ejercicio 2.3.8 (Solos) Entrenar un algoritmo de GBM para regresión con el que estimar la masa corporal de las aves voladoras a partir de su morfología. Entrenar con un 10% de las muestras y testar con el 90% restante. a) Sin optimización, b) Optimización con una grid aleatoria, c) Optimización bayesiana, d) Estimar la masa corporal de Accipiter brachyurus, Cincloramphus cruralis y Tigriornis leucolopha (datos reales pero no de una investigación real). Script AVONET

Ejercicio 2.3.9. Predecir a partir de variables ambientales la presencia o ausencia del avión roquero (Ptynoprogne rupestris) mediante GBM para clasificación binaria, ponderando las presencias para que pesen tanto como las ausencias, a) directamente sin optimizar (no testar) y b) optimizando con grid completa y la k-folds CV interna de GBM, c) Estimar con VCPB la capacidad predictiva (con kappa), con datos estructurados espacialmente, d) Representar las predicciones. Script AvesCls.

Ejercicio 2.3.10. a) Determinar el tipo de ecosistema de una comunidad de mamíferos a partir de su estructura trófica mediante GBM para clasificación multiclase. b) Evaluación de la capacidad predictiva con leave-one-out, c) determinar el tipo de ecosistema de Venta Micena. Script AfroNPs.

4. LightGBM (Light Gradient Boosting Machine)

2.4.2. Predecir mediante lightGBM el tipo de tumor (benigno o maligno) relacionado con la neurofibromatosis tipo 1, a partir del perfil de expresión génica de sus células, a) directamente sin optimizar (no testar) y b) optimizando con grid aleatoria y la k-folds CV interna del paquete lightGBM c) Testar la capacidad predictiva de la mejor combinación de hpps sobre datos test. Script Neurofibroma.

Ejercicio 2.4.3. a) Determinar con lightGBM 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 la capacidad predictiva programando una 10-folds CV. Script Cáncer.

5. Xgboost (eXtreme Gradient Boosting)

5.1 XgBoost con predictores numéricos

Ejercicio 2.5.2 (Solos) a) Estimar la masa corporal de las aves (regresión) con xgboost a partir de la morfología de su ala (datos reales), sin optimizar y optimizando con grid aleatoria y la k-folds CV interna del paquete Xgboost, b) testar el mejor modelo con testdata, c) Estimar la masa corporal de Accipiter brachyurus, A. brevipes y A. Butler (datos reales, pero no de una investigación real). Script AVONET

Ejercicio 2.5.4. Predecir con XgBoost la presencia o ausencia del avión roquero (Ptynoprogne rupestris) a partir de variables predictoras ambientales, ponderando las presencias para que pesen tanto como las ausencias, a) sin optimizar los hpps, b) optimizándolo con grid aleatoria y la k-folds CV interna del paquete xgboost, c) Testar la capacidad predictiva del "mejor" modelo con VCPB, cuando puede haber autocorrelación espacial. Script AvesCls.

Ejercicio 2.5.6. Predecir el comportamiento migratorio de Accipiter brachyurus, A. brevipes y A. butleri (Newspcs) a partir de su morfología (clasificación multiclase), ponderando para que las 3 categorías pesen lo mismo, con: a) AdC (ponderar con weights, optimizar con cptable y testar con VCA), b) RF (ponderar con sampsize, no optimizar hpps y testar con las predicciones sobre las OOB), c) XgBoost (25%), ponderar con weights, optimizar con grid exhaustiva y la VC interna de XgBoost y testar con testdata. Script AVONET

Ejercicio 2.5.7. (Solos). Determinar el sitio de localización de la proteína (clasificación multiclase), dentro de la célula de la levadura Saccharomyces cerevisiae, a partir de 8 descriptores del sistema de anotaciones Yeast Protein Database. Comparar la capacidad predictiva (Kappa), optimizando directamente, de: a)                AdC (ponderar con weights, optimizar con cptable y testar con VCA), b) RF (ponderar con sampsize, no optimizar hpps y testar con las predicciones sobre las OOB), c)       XgBoost (ponderar con weights, optimizar con grid exhaustiva y la VC interna de XgBoost, entrenar con el 75% de las muestras y testar con el resto). Script yeast.

5.2 XgBoost con datos estructurados  

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

6. Importancia de las variables

Importancia basada en la permutación (IbP)

Importancia basada en la Ganancia (IbG)

6.1 Árboles de decisión (ya se vio)

6.2 Random forests (Importancia de las variables)

Incremento relativo del error por permutación (IbP)

Incremento de la pureza de los nodos (IbG)

6.3 Random forests como herramienta de selección de variables

Ejercicio 2.6.1. a) Entrenar un árbol de clasificación con el que identificar el tipo de cáncer (I, II o III) a partir del grado de expresión de 46 variantes genéticas, seleccionando previamente aquellas que son más importantes con RF, b) comparar el orden de importancia de acuerdo con rpart (también basado en Gini) (archivo: E-MTAB-2770). Script Cáncer.

6.4 Boosted trees (Importancia de las variables)

6.5 XgBoost (Importancia de las variables)

Gain

Cover

Frequency

6.6 Paquete DALEX (Descriptive mAchine Learning EXplanations)

Importancia Basada en el Valor de Shapley (Shapley)

Perfil de descomposición de importancias (Break Down Profile, BDP)

Ejercicio 2.6.3. (Solos) hasta el e. a) Identificar las principales adaptaciones morfológicas de las aves para vivir en estos 5 tipos de hábitat (Forest, Grassland, Shrubland, Wetland y Woodland) utilizando para ello un algoritmo de RF (ponderar las categorías para que pesen lo mismo), b) Estimar su capacidad predictiva con CC% y kappa, a partir de las predicciones sobre las muestras OOB, c) Determinar la importancia de las variables con los paquetes randomForest y DALEX, d) Obtener el perfil desglosado (Break Down profile) para la 1ª muestra de entrenamiento, e) Predecir el tipo de hábitat al que están adaptadas Amaurornis moluccana, Accipiter brachyurus y Artamus leucorynchus (Newspecies) a partir de su morfología, directamente y desglosando la contribución individual de cada variable morfológica a la probabilidad de que se trate de una especie adaptada al hábitat predicho, f) Análisis detallado del perfil de Artamus leucorynchus (siguiente diapositiva), g) Obtener Importancia Basada en el Valor de Shapley para Artamus leucorynchus Script AVONET Ref. ej. 2.2.7 y 2.6.2

7. Efecto de las variables predictoras

7.1. Partial dependence plots (PDP)

Relaciones complejas

Ejercicio 2.7.1. Análisis e interpretación de los resultados (Importancia, PDP e interacciones) de un RF para regresión, de una base de datos artificial (1000 muestras y 3 predictores: a, b y c) cuya variable objetivo “y” tiene una relación sencilla conocida: a) con un solo predictor, b) con 2 predictores no correlacionados, c) con predictor, que está correlacionado con otro. Script PDP2.

Ejercicio 2.7.2. Determinar el efecto de ciertas variables ambientales sobre la abundancia de una planta (ficticia) con restricciones ambientales y condiciones de favorabilidad climática, con muestras y variables artificiales, NO CORRELACIONADAS, a) con ayuda de un AdR, b) a partir de la importancia de las variables en un modelo de RF (con paquetes randomForest y DALEX), c) PDPs, y d) Perfil desglosado (BDP) de algunas muestras. Script PDP2.

Ejercicio 2.7.3. (Solos). Determinar el efecto de ciertas variables ambientales sobre la abundancia del avión roquero (Ptynoprogne rupestris) a) con ayuda de un AdR, b) a partir de la importancia de las variables en un modelo de RF (con paquetes randomForest y DALEX), c) PDPs, y d) el Perfil desglosado (BDP) de algunas muestras. Script AvesReg.

7. 2. Curvas de expectativas condicionales individuales (ICE)

7.3. Gráficos de los efectos locales acumulados (ALE) - Alternativa a los PDP

8. Interacción entre predictores

8.1. Representación visual mediante PDPs combinados

8.2. Estadístico H (Friedman's H-statistic)

Ejercicio 2.8.1. Caracterizar mediante AdR y RF el nicho climático óptimo de un género de planta tropical, a partir de la distribución global de su abundancia. Los datos climáticos son reales (13178 celdas de 1º x 1º distribuidas globalmente). Por lo tanto están CORRELACIONADOS. Los valores de abundancia son artificiales. Script PDP1.

Ejercicio 2.8.2. a) Con el paquete randomForest: a.1 Entrenar un modelo de RF con el que determinar el tipo de hábitat (Forest, Grassland, Shrubland, Wetland o Woodland) al que están adaptadas las aves a partir de su morfología, ponderando para que las 5 categorías pesen lo mismo. a.2 Obtener la importancia de las variables. b) Con el paquete PDP obtener: b.1 PDP de la longitud de la cola (TlL) para Forest. b.2 Obtener los PDPs suavizados de TlL para los 5 hábitats b.3 PDPs combinados de la longi. de la cola (TlL) y la profundidad del pico (BkD) para pastizales (Grassland) en 2D y 3D. b.4 ICE para la longitud de la cola (TlL) , c) Con el paquete Iml: c.2 ALEs, c.3 Interacción entre predictores con el estadístico H, c.4 Interacción de la longitud de la cola (TlL) con el resto de predictores. Script AVONET USAR UN 10% DE LAS MUESTRAS (para el ejercicio)

Ejercicio 2.8.3 (Solos) a) Con el paquete randomForest, a.1 Entrenar un modelo de RF con el que determinar el tipo de ecosistema de una comunidad de mamíferos a partir de su estructura trófica, ponderando para que las 4 categorías pesen lo mismo, a.2 Obtener la importancia de las variables, b) Con el paquete PDP obtener: b.1 PDP de los frugívoros (frg) para las selvas (RFr,), b.2 Obtener algunos PDPs suavizados, b.3 PDPs combinados de carroñeros (bc) e hipercarnívoros (hc) en 2D y 3D, b.4 ICE para los pacedores (gg). c) Con el paquete Iml: c.1 ALEs, c.2 Interacción entre predictores con el estadístico H, c.3 Interacción de los pacedores (gg) con el resto de predictores, d) Con el paquete DALEX: d.1 PDPs Script AfroNPs.

Ejercicio 2.8.4. Caracterizar mediante RF y GBM las condiciones que llevan a la depauperación de las comunidades de zonas frías y templadas, a partir de factores de impacto humano mediante la importancia de las variables, PDP y las interacciones entre ellos. Script: Human Impact.

Ejercicio 2.8.5. (Solos) a) Averiguar la variable más importante de un algoritmo de RF entrenado para predecir la riqueza de especies invertívoras a partir del clima, de acuerdo con IncNodePurity y %IncMSE, b) Analizar con PDP suavizados (paquete PDP) su efecto sobre la sobre la riqueza de especies invertívoras, de forma independiente y combinada (2D y 3D) c) Comprobar con ICE si el efecto medio (PDP) se corresponde con un único patrón, d) Analizar con ALE (paquete iml) el efecto de las 2 variables y e Averiguar sus interacciones fundamentales. Script CLiMod.

Ejercicio 2.8.6. Con el Paquete XgBoost: a) Entrenar un algoritmo XgBoost para predecir la abundancia del avión roquero (Ptynoprogne rupestris) a partir de variables predictoras ambientales (regresión), b) Determinar la importancia de las variables (Gain, Cover y Frequency), c) Determinar la abundancia esperada en una nueva localidad (NvLoc). Con el paquete DALEX: d) Determinar la importancia de las variables, e) Obtener el perfil desglosado (Break Down profile) para la 1ª muestra de entrenamiento y NvLoc, f) Determinar el efecto de la Temperatura media (tempmedia) con ayuda de un PDP individual, g) de todas las variables, simultáneamente, con sus PDPs ya estandarizados, h) Dividir las poblaciones en interiores y costeras para comprobar con PDPs si el efecto de las variables sigue un mismo patrón. Script AvesReg.

Ejercicio 2.8.7 (Solos) Con el Paquete XgBoost: a) Entrenar un algoritmo XgBoost para estimar la masa corporal de las aves (regresión) a partir de la morfología de su ala, b) Determinar la importancia de las variables, c) Determinar la masa corporal de 3 nuevas especies: Accipiter brachyurus, Cincloramphus cruralis y Tigriornis leucolopha, Con el paquete DALEX: d) Determinar la importancia de las variables, e) Obtener el perfil desglosado (Break Down profile) para la 1ª muestra de entrenamiento y las 3 nuevas especies, f) Determinar el efecto de la longitud de la cola (TlL) con ayuda de un PDP individual, g) Determinar el efecto de todas las variables, simultáneamente, con sus PDPs ya estandarizados. Script AVONET 

Ejercicio 2.8.8. Análisis e interpretación (Importancia, PDP, ALEs e interacciones) de los algoritmos de RF y XgBoost, para predecir la presencia o ausencia del avión roquero (Ptynoprogne rupestris) a partir de variables predictoras ambientales. Obtener las ICE para tempmin e identificar las que muestran un patrón diferente. Script AvesCls.

Ejercicio 2.8.9. (Solos) a) Utilizar el paquete pdp para analizar con PDP cómo afectan a la probabilidad de que un cáncer sea del tipo I, II o III, las dos variantes genéticas más importantes (de las 8 identificadas en el ej. 2.6.1), de acuerdo con RF-MeanDecreaseGini, b) analizar con PDP suavizado el efecto de MTATP6 sobre la probabilidad de padecer un cáncer tipo II, c) analizar el efecto combinado de ambas variantes genéticas sobre el cáncer tipo II, d) Utilizar el paquete DALEX para representar en un mismo plot ambos PDPs para cada variante genética, e) analizar con el paquete iml las interacciones entre las 8 variantes genéticas identificadas en el ej. 2.6.1, f) las interacciones entre la variante más importante y las demás. Script Cáncer

Ejercicio 2.8.10. Analizar con PDP, cómo afecta el grado de expresión de los dos genes más importantes, identificados por el algoritmo XgBoost, sobre la probabilidad de padecer cada tipo de cáncer, usando para ello el paquete DALEX (+ DALEXtra para XgBoost). Script Cáncer

 

 

Fecha

  • Martes, 14 Noviembre 2023

Horario

Del 14 al 23 de noviembre de 2023  

(8 días, 24 horas lectivas)

16:30 a 19:30h (Zona horaria de Madrid)

Ubicación

Sala de Juntas del Museo en modo presencial ó en remoto a través de zoom

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

220 euros

Inscripción