Machine Learning para Investigación Científica: Árboles de Clasificación y Regresión

Compatibilité
Sauvegarder(0)
partager

Impartido por
Manuel Mendoza García, Científico Titular del MNCN-CSIC.

Objetivo del curso
Aprender a utilizar machine learning (en R) para la resolución de problemas de investigación científica. El curso tiene un enfoque altamente práctico (≈ 80%), con numerosos ejercicios basados en investigaciones reales (ver programa). La programación, resolución e interpretación de estos ejercicios se desarrolla en paralelo con la teoría.

Dirigido a
Investigadores de cualquier nivel académico.

Requisitos
Conocimientos básicos de R.

Material incluido en el curso

✔️ Códigos explicados de todos los ejercicios del curso.
✔️ Guía del curso con los principales conceptos en PowerPoint.

Programa

Introducción

       Relación entre distintas técnicas de Inteligencia Artificial (IA)

       Aprendizaje Automático vs. Modelado Estadístico

       Tipos de Aprendizaje

Árboles de decisión

1. Interpretación

2. Representación de los hiperplanos

Ejercicio 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 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 2.3. a) Entrenar un AdC 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 2.4. 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 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 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 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 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 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 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. 

4. Ventajas y Limitaciones

  4.1 Ventajas

  4.2 Limitaciones

5. Desarrollo

   5.1 Particionamiento recursivo

   5.2 Optimizados globalmente

Ejercicio 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.

Ejercicio 5.2. 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 árboles optimizados globalmente (evtree). Probar distintos valores de alfa. Script neurofibroma.

6. Medidas de impureza como criterio de división para Clasificación

   6.1 Entropía (Ganancia de Información)

   6.2. Índice Gini (desigualdad)

      Predictores categóricos

Ejercicio 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 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).

      Predictores numéricos

Ejercicio 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

7. Medidas de impureza como criterio de división para Regresión

Ejercicio 7.1. 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.

8. Interacciones Complejas

Ejercicio 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 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 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

   11.1 Factor de coste-complejidad (cp)

   11.2 Otros

12. Evaluación de la capacidad predictiva de los modelos

   12.1 Validación cruzada (VC) para estimar la capacidad predictiva de los modelos.

       k-folds CV

       k-folds CV acumulada

       VC aleatoria (VCA)

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

       Datos de entrenamiento, validación y prueba (test)

       Fuga de Información (Data Leakage)

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

Ejercicio 12.1. a) Determinar la complejidad óptima de un AdR entrenado para predecir el albedo o reflectividad de un asteroide, a partir de ciertas características físicas y orbitales, con cptable (10-folds CV), b) Estimar con el paquete caret la capacidad predictiva de un árbol con esa complejidad óptima utilizando 10-folds CV, c) Inferir (con el árbol definitivo) el albedo de un nuevo asteroide (NvAst), d) Obtener la importancia de las variables. Script Asteroid.

Ejercicio 12.2. 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 12.3. 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 12.4. Solos a) Determinar con cptable (10-folds CV), la complejidad optima de un AdC (multiclase) entrenado con rpart para detectar exoplanetas utilizando el conjunto de datos "Kepler Exoplanet Search Results", b) estimar la capacidad predictiva del árbol definitivo (con cp óptimo) con caret (10-fold CV). Script Kepler.

Ejercicio 12.5. a) Determinar la complejidad óptima de un árbol de clasificación (multiclase) entrenado para determinar el sitio de localización de la proteína, dentro de la célula de Saccharomyces cerevisiae, a partir de 8 descriptores del sistema de anotaciones Yeast Protein Database (datos reales), con cptable, basado en 10-folds CV; b) estimar la capacidad predictiva con caret (10-fold CV), c) obtener un árbol más interpretable  (cp=0.005). Script yeast.

Ejercicio 12.6. 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 2.5. script mushroom). Script AVONETLifestl

Ejercicio 12.7. Solos En base a su respuesta a los distintos tratamientos se han identificado 3 tipos de cáncer (I, II o III). Determinar con cptable (10-folds CV), la complejidad optima de un AdC (multiclase) entrenado con rpart para determinar el tipo a partir del grado de  expresión de 47 variantes genéticas  (originalmente > 54.000), b) Estimar su capacidad predictiva con caret (10-fold CV). Script Cáncer.

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

Ejercicio 12.8. 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.

          Estructura espacial 

          Estructura temporal 

          Estructura filogenética

          Estructura en estudios sanitarios

          Estructura en estudios económicos

          Otros tipos de estructura

Ejercicio 12.9. 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 12.10. 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 12.11. 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 cptable (10-folds CV), 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 utilizando R² como métrica de evaluación, 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.

Ejercicio 12.12. 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 12.13. Predecir la radiación solar (Rad) a partir de variables predictoras ambientales temporales, tomadas cada 5 minutos durante 4 meses (1 septiembre - 31 diciembre), a) Representar la serie temporal de la radiación solar para identificar posibles patrones a lo largo del tiempo, b) Entrenar un árbol de regresión utilizando las variables ambientales como predictoras e identificar la complejidad óptima con cptable (10-folds CV), c) Programar una VCPB acumulada para identificar la complejidad óptima del árbol (cp) utilizando R² como métrica de evaluación, d) obtener un árbol de regresión con todas las muestras y la complejidad óptima identificada, y analizar su rendimiento sobre un conjunto de prueba final independiente. Script SolarPrediction

Ejercicio 12.14. 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 ex

Coordonnées
Josefina Cabarga