Técnicas Avanzadas de Machine Learning para Investigación Científica (II): Métodos de Ensamble de árboles

Compatibility
Save(0)
Share

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 numerosos ejercicios prácticos 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.

Material incluido en el curso

Los códigos explicados de los 35 ejercicios del bloque 2.

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

Programa

BLOQUE 2. Métodos de ensamble de árboles

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

Ejercicio 2.1.1. Demostración práctica 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 árbol de regresión reduciendo la varianza (error por imprecisión) mediante promediado; b) programación paso a paso (sin librería) de un bagging. Script CLiMod

2. Random forests

Ejercicio 2.2.1. Programación paso a paso (sin librería) de un RF entrenado para predecir la riqueza de especies invertrívoras a partir del clima, a escala global, testándolo con muestras independientes. Script CLiMod.

Ejercicio 2.2.2. a) Entrenar un RF con el paquete randomForest, para predecir la riqueza de especies invertrívoras a partir del clima, a escala global, testándolo con muestras independientes. Script CLiMod.

  - Sobreajuste con Random Forest

   2.1 Regresión

Ejercicio 2.2.3. Estimar con RF (200 árboles) 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.

Ejercicio 2.2.4 Solos. Estimar con RF (200 árboles) el tamaño del rango (RngSz) de las aves a partir de su morfología y estimar el rango de una especie desconocida de ruiseñor (género Luscinia). Script AVONETRngSz

  - Coste diferencial y datos desequilibrados con paquete randomForest

   2.2 Clasificación binaria

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 árbol de clasificación (Ejercicio 1.14.1). Script AvesCls.

   2.3 Clasificación multiclase 

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 AVONETEHbt

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 árbol de clasificación (bloque 1). Script AfroNPs

Ejercicio 2.2.8. a) Predecir el tipo de estructura trófica esperable en un lugar a partir de su clima mediante RF (n=2000), ponderando para que las 6 categorías pesen lo mismo, b) evolución del error (6 estructuras y OOB) ¿son 2000 árboles suficientes?, c) evolución del error para TS4 y valor final, d) estimación de la capacidad predictiva del modelo con VCPB (datos estructurados espacialmente), para cada TS y total, e) comparar resultados con árbol de clasificación (bloque 1). Script EFWOGE.

3. Boosting

   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 Boosting Machine (GBM)

  3.3 GBM estocástico

   3.4 Paquete GBM (gradient boosting machine)

   3.5 Optimización de los hiperparámetros

  - Optimización Bayesiana

  - Riesgo de Sobreajuste a los Datos de Validación

Ejercicio 2.3.2. Programación paso a paso (sin librería) de un GBM para regresión con el que predecir, a) cómo varía la tasa de fotosíntesis de una planta (y, datos ficticios) en función de la hora del día (x), utilizando el mse como FdP, b) cómo varía la tasa de crecimiento de microorganismos en función de la concentración de un nutriente y la Temperatura del medio. Script GBM program.

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 0.01) y mse como FdP. Testar directamente sobre muestras test espacialmente independientes. 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 la entropía cruzada como FdP. 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.

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 AVONETMsCrp

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 aleatoria 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)

  4.1 Hpps clave en LightGBM.

Ejercicio 2.4.1. 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.2. a) Determinar con lightGBM (optimizado) el tipo básico de cáncer (I, II o III) a partir del grado de expresión de 47 variantes genéticas (originalmente > 58.000) en 933 líneas celulares, b) Estimar la capacidad predictiva programando una 10-folds CV. Script Cáncer.

   4.2 Datos desequilibrados con paquete LightGBM

Ejercicio 2.4.3. Predecir a partir de variables ambientales la presencia o ausencia del avión roquero (Ptynoprogne rupestris) mediante LightGBM para clasificación binaria, ponderando las presencias para que pesen tanto como las ausencias y usando como métrica para la evaluación AUC, en vez de binary_error, a) directamente sin optimizar (no testar) y b) optimizando con grid aleatoria y la k-folds CV interna de lightGBM c) Estimar con VCPB la capacidad predictiva (con kappa), con datos estructurados espacialmente; d) Representar las predicciones.  Script AvesCls.

5. Xgboost (eXtreme Gradient Boosting)

   5.1 Hiperparámetros del paquete xgboost

   5.2 XgBoost con predictores numéricos

   - Datos desequilibrados con paquete XgBoost

Ejercicio 2.5.1. a) Estimar la riqueza de especies de aves invernantes con XgBoost a partir de predictores ambientales, sin optimizar y optimizando con grid aleatoria y la k-folds CV interna del paquete Xgboost, b) testar el mejor modelo con testdata y comparar resultados con árbol de regresión, RF y GBM, c) Inferir la riqueza de especies esperable en una nueva localidad (NvLoc) con XgBoost. Script Numspc.

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 AVONETMsCrp

Ejercicio 2.5.3. Predecir 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 mediante XgBoost, a) directamente sin optimizar (no testar) y b) optimizando con una grid exhaustiva y la k-folds CV interna del paquete lightGBM c) Testar la capacidad predictiva sobre datos test.  Script neurofibroma.

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

Ejercicio 2.5.5. 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: RF. Ponderar con sampsize, representar la evolución del error para cada una de las categorías y testar con las predicciones sobre las muestras OOB), XgBoost (25%), ponderar con weights, optimizar con grid aleatoria y la VC interna de XgBoost y testar con testdata. Script AVONETMgr

Ejercicio 2.5.6. 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 con un algoritmo de:

a) RF. Ponderar con sampsize, no optimizar hpps, representar la evolución del error para cada una de las categorías y testar con las predicciones sobre las muestras OOB.

b) XgBoost (ponderar con weights, optimizar con grid aleatoria y la VC interna de XgBoost, entrenar con el 75% de las muestras y testar con el resto). Script yeast.

   5.3 XgBoost con datos estructurados

Ejercicio 2.5.8. a) Predecir el tipo de estructura trófica esperable en un lugar a partir de su clima mediante XgBoost (n=2000), ponderando para que las 6 categorías pesen lo mismo, b) optimizar con rejilla de búsqueda y datos de validación espacialmente independientes; c) testar con datos de prueba, ambos espacialmente independientes. Script EFWOGE

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

Ejercicio 2.5.9. a) Determinar con XgBoost 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, b) Aplicar a nuevos datos, c) ¿sería seguro utilizar el algoritmo sobre una especie no presente en los datos? Script mushroom.

6. Importancia de las variables 

   6.1 Árboles de decisión

   6.2 Random forests (Importancia de las variables)

  - Incremento relativo del error por permutación (IbP)

  - Incremento de la pureza de los nodos (IbG)

  - Importancia por Unicidad (Uniqueness Importance)

   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 (originalmente > 58.000), seleccionando previamente aquellas que son más importantes con RF, b) comparar con Uniqueness Importance (archivo: E-MTAB-2770).  Script Cáncer.

   6.4 Boosted trees (Importancia de las variables)

   6.5 XgBoost (Importancia de las variables)

Ejercicio 2.6.2. a) Entrenar un árbol de clasificación optimizado globalmente con evtree con el que identificar la malignidad o benignidad de un neurofibroma tipo 1, a partir del perfil de expresión génica de sus células (≈ 55.000 variantes genéticas), seleccionando previamente aquellas que son más importantes con RF (finalmente XgBoost). Script NeurofibORIG.

   6.6 Paquete DALEX (Descriptive mAchine Learning EXplanations

  - Importancia basada en permutaciones

  - Importancia Basada en el Valor de Shapley 

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

Ejercicio 2.6.3 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 brachyurusArtamus 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 AVONETHbt

Ejercicio 2.6.4. Representa la contribución de las variables predictoras al estimar la riqueza de especies de aves invernantes (regresión), a) con árbol de regresión, b) RF, c) GBM y d) XgBoost. Script Numspc. 

Eje

Contact details
Josefina Cabarga