EXPERIMENTOS DE PREDICCIÓN CON GRADIENT BOOSTING Y...

142
Trabajo de Fin de Grado EXPERIMENTOS DE PREDICCIÓN CON GRADIENT BOOSTING Y RANDOM FOREST Daniel Cimarra Muñoz Junio 2018 Realizado en la Escuela Técnica Superior de Ingenieros Industriales de la Universidad Politécnica de Madrid Tutor: José Manuel Mira McWilliams

Transcript of EXPERIMENTOS DE PREDICCIÓN CON GRADIENT BOOSTING Y...

  • Trabajo de Fin de Grado

    EXPERIMENTOS DE PREDICCIÓN CON

    GRADIENT BOOSTING Y RANDOM FOREST

    Daniel Cimarra Muñoz

    Junio 2018

    Realizado en la Escuela Técnica Superior de Ingenieros Industriales de la

    Universidad Politécnica de Madrid

    Tutor:

    José Manuel Mira McWilliams

  • Experimentos de predicción con técnicas Boosting y Random Forest

    1 Daniel Cimarra Muñoz

    DEDICATORIA Y AGRADECIMIENTOS

    Me gustaría agradecer, en primer lugar, a José Mira McWilliams. Por su comprensión y

    su acogida a la hora de permitirme realizar el Trabajo de Final de Grado en su

    departamento. Sus esfuerzos para reunirse en horas intempestuosas me han permitido

    compatibilizar esta tarea con el trabajo, y finalmente poder entregar hoy este documento.

    Gracias por tu pasión y por no poner jamás una pega.

    A Marife, por saber acompañarme y darme el tiempo que necesitaba para llegar hasta

    aquí.

    Al “equipo multi” y al resto de amigos que me han acompañado a lo largo de la carrera.

    Para mí nunca fue un camino fácil, pero sin vosotros hubiese sido imposible. Gracias

    por tanto.

  • Resumen

    2 Escuela Técnica Superior de Ingenieros Industriales (UPM)

  • Experimentos de predicción con técnicas Boosting y Random Forest

    3 Daniel Cimarra Muñoz

    RESUMEN EJECUTIVO

    Introducción

    El presente Trabajo de Fin de Grado hace un estudio intensivo de predicción en R, a

    partir de datos simulados, con algoritmos de aprendizaje, utilizando las técnicas Random

    Forest y Gradient Boosting sobre distintos modelos de función, y comparando el

    rendimiento de ambos métodos en cada caso.

    El proyecto se inició en febrero de 2015, pero su ejecución sufrió varias intermitencias

    debido a la compatibilización con el empleo (entre otros). Su fecha de finalización se

    sitúa a mediados de junio de 2018.

    Este trabajo ha sido tutorizado a lo largo de todo su desarrollo por José Mira McWilliams,

    profesor en el Departamento de Estadística de la Escuela Técnica Superior de

    Ingenieros Industriales de la Universidad Politécnica de Madrid (ETSII-UPM).

    Objetivos

    Los objetivos del presente proyecto son los siguientes:

    • Estudio general de predicción utilizando la técnica de Random Forest. El objetivo

    es enfrentar al método, de manera puramente teórica, a muy diversas funciones

    modelo. De esta forma, se pretende obtener una fotografía de la precisión de la

    predicción con Random Forest, y su variabilidad según el modelo de función.

    • Estudio general de predicción utilizando la técnica de Boosting. Al igual que en

    Random Forest, el objetivo es lograr una batería de pruebas de predicción amplia

    y en torno a distintos modelos de función. Esto proporcionará una visión general

    de la precisión de la predicción frente a funciones diversas.

    • Comparación de la predicción mediante las técnicas Boosting y Random Forest.

    Se pretende comparar la precisión de la predicción para ambos métodos,

    discerniendo cuál de los métodos es más efectivo según la función modelo.

  • Resumen

    4 Escuela Técnica Superior de Ingenieros Industriales (UPM)

    Fundamento teórico

    Random Forest es una versión más compleja de la técnica Bagging introducida por

    Breiman en 2001. Se basa en la generación de árboles de clasificación o regresión

    (CART), haciendo por un lado remuestreo (Bootstrap) de los datos de diseño, y por otro

    lado muestreo de las variables de entrada en cada nodo del árbol. Random Forest es

    uno de los algoritmos de aprendizaje más precisos.

    Por su lado, la técnica de Gradient Boosting parte de un algoritmo de aprendizaje que

    busca una función de predicción óptima. Para ello, minimiza una función de pérdida o

    “riesgo empírico”, diferenciándola repetidamente para descender por el máximo

    gradiente y disminuir el error cuadrático en cada iteración. Esta técnica presenta muy

    buen rendimiento, y su proceso de predicción resulta menos opaco que el de Random

    Forest.

    Procedimiento

    Las pruebas se han realizado utilizando las funciones disponibles en los paquetes

    randomForest y mboost de R.

    Los algoritmos de aprendizaje se han ejecutado en ambos casos sobre una matriz de

    diseño de 1000 elementos, dando un valor entre 0 y 10 a las variables de entrada para

    todos los casos. Generando el modelo para dichos datos, se ha ejecutado la predicción

    de los siguientes 4 valores (1001-1004) de la variable de salida, dando valores dentro

    de la misma malla a las variables de entrada.

    Las funciones empleadas han sido de tipo polinómico, con hasta tres variables de

    entrada. Se han hecho pruebas con funciones polinómicas simples de grado 3 o menor,

    y se han puesto a prueba los algoritmos multiplicando las variables (términos cruzados)

    y usando polinomios tipo Taylor.

    Además de comparar los valores predichos con los valores reales, se han obtenido una

    serie de indicadores y gráficas a fin de estudiar en profundidad la respuesta del algoritmo

    a cada tipo de función, así como la evolución del error conforme aumenta el número de

    árboles o iteraciones en cada caso.

  • Experimentos de predicción con técnicas Boosting y Random Forest

    5 Daniel Cimarra Muñoz

    Resultados y Conclusiones

    Estas serían las conclusiones obtenidas de las pruebas realizadas:

    • El método de Random Forest presenta un rendimiento particularmente bueno,

    sobre todo ante funciones polinómicas simples. Mientras que en polinomios de

    grado 1 presenta un error relativamente pequeño, el error es despreciable o cero

    con grado 2 y/o 3.

    • Al cruzar términos, el rendimiento de Random Forest sigue siendo

    razonablemente bueno, pero el error se dispara para polinomios más complejos

    tipo Taylor.

    • En líneas generales, el método de Random Forest supera a Boosting: obtiene

    resultados más certeros para un menor tiempo de ejecución. Sin embargo, los

    resultados obtenidos mediante Boosting son también muy precisos, y resultan

    más homogéneos frente a los distintos tipos de modelo.

    • Por esta razón, se recomienda el uso de técnicas Boosting ante funciones

    desconocidas o a priori muy complejas. Esta afirmación se ve reforzada por los

    picos y fenómenos de overfitting observados al aplicar Random Forest ante

    determinados modelos.

    Palabras clave

    Predicción, R, Random Forest, Gradient Boosting, randomForest, mboost, ntree, MSE-

    OOB, Variabilidad Explicada, mstop, base-learner, gamboost, cvrisk, predict.

    Códigos UNESCO

    120901, 120902, 120905, 120910, 120914

  • Resumen

    6 Escuela Técnica Superior de Ingenieros Industriales (UPM)

  • Experimentos de predicción con técnicas Boosting y Random Forest

    7 Daniel Cimarra Muñoz

    ÍNDICE

    DEDICATORIA Y AGRADECIMIENTOS ...................................................................... 1

    RESUMEN .................................................................................................................... 3

    1. INTRODUCCIÓN ................................................................................................. 10

    1.1. Origen y desarrollo del proyecto ................................................................... 11

    1.2. Técnicas de predicción ................................................................................. 12

    1.2.1. Random Forest ...................................................................................... 12

    1.2.2. Gradient Boosting .................................................................................. 12

    2. OBJETIVOS ........................................................................................................ 14

    3. FUNDAMENTO TEÓRICO .................................................................................. 15

    3.1. Random Forest ............................................................................................. 15

    3.1.1. Introducción – Bagging .......................................................................... 15

    3.1.2. Random Forest ...................................................................................... 16

    3.1.3. Análisis de sensibilidad con Random Forest .......................................... 17

    3.2. Boosting ....................................................................................................... 21

    3.2.1. Introducción – Boosting ......................................................................... 21

    3.2.2. Gradient Boosting .................................................................................. 22

    4. PREDICCIÓN CON RANDOM FOREST ............................................................. 26

    4.1. Introducción .................................................................................................. 26

    4.2. Paquete randomForest en R ......................................................................... 26

    4.3. Diseño de las pruebas .................................................................................. 27

    4.4. Resultados de las pruebas ........................................................................... 29

    4.4.1. Valor real frente a valor predicho. .......................................................... 29

    4.4.2. Residuos y Variabilidad Explicada. ........................................................ 34

    4.4.3. Gráficas Error (MSE-OOB) frente a número de árboles. ........................ 38

    4.5. Análisis de los resultados ............................................................................. 52

    4.5.1. Primer grupo: modelos de grado 1. ........................................................ 52

  • Índice

    8 Escuela Técnica Superior de Ingenieros Industriales (UPM)

    4.5.2. Segundo grupo: modelos con sólo un término cuadrático o cúbico. ....... 53

    4.5.3. Tercer grupo: modelos con término cuadrático y cúbico. ....................... 54

    4.5.4. Cuarto grupo: modelos con términos cruzados. ..................................... 54

    4.5.5. Quinto grupo: modelos Taylor. ............................................................... 56

    5. PREDICCIÓN CON BOOSTING .......................................................................... 58

    5.1. Introducción .................................................................................................. 58

    5.3. Diseño de las pruebas .................................................................................. 60

    5.4. Resultados de las pruebas ........................................................................... 61

    5.4.1. Valor real frente a valor predicho ........................................................... 61

    5.4.2. Riesgo en mstop óptimo ........................................................................ 66

    5.4.3. Gráficas riesgo. ..................................................................................... 71

    5.5. Análisis de los resultados ............................................................................. 84

    5.5.1. Términos cruzados. ............................................................................... 85

    5.5.2. Taylor. ................................................................................................... 85

    5.5.3. Resto de casos. ..................................................................................... 85

    6. COMPARACIÓN DE RESULTADOS ................................................................... 93

    7. CONCLUSIONES Y LÍNEAS FUTURAS DE INVESTIGACIÓN ......................... 101

    7.1. Principales aportaciones ............................................................................. 101

    7.2. Líneas futuras ............................................................................................. 101

    8. PLANIFICACIÓN DEL TRABAJO Y PRESUPUESTO ....................................... 103

    8.1. Planificación temporal (Diagrama de Gantt)................................................ 103

    8.2. Presupuesto ............................................................................................... 106

    9. BIBLIOGRAFÍA .................................................................................................. 108

    ANEXOS ................................................................................................................... 110

    Anexo A: Índice de figuras ..................................................................................... 110

    Anexo B: Índice de tablas ...................................................................................... 110

    Anexo C: Abreviaturas .......................................................................................... 111

    Anexo D: Código en R ........................................................................................... 111

  • Introducción

    10 Escuela Técnica Superior de Ingenieros Industriales (UPM)

    1. INTRODUCCIÓN

  • Experimentos de predicción con técnicas Boosting y Random Forest

    11 Daniel Cimarra Muñoz

    1.1. Origen y desarrollo del proyecto

    El presente Trabajo de Fin de Grado fue planteado en origen como continuación del

    proyecto Análisis de sensibilidad con árboles de regresión: aplicación a un código de

    elementos finitos, defendido por Xinwei Ye Peng en febrero de 2015.

    Dicho trabajo planteaba la aplicación de técnicas Anova, BART, Dynamic Tree y

    Random Forest a la identificación de daños estructurales en Ingeniería Civil. Mediante

    una serie de simulaciones, identificaba qué variables físicas de una viga influyen en su

    frecuencia de vibración natural. De esta forma, valoraba si los métodos de detección

    basados en dicha vibración eran adecuados.

    La idea original para este TFG era explorar la posibilidad de utilizar dichas técnicas para

    la predicción de daños estructurales en las vigas. Para ello, se empiezan a diseñar

    pruebas en R de predicción con Random Forest.

    En un momento dado, se decide virar hacia un trabajo puramente teórico, con datos

    generados aleatoriamente en R. Se decide hacer un estudio intensivo de resultados de

    predicción utilizando Random Forest, desechando el resto de métodos.

    A cambio, se introduce la técnica de Boosting, en su variante Gradient Boosting

    (introducida por Breiman en 1998). Este método tiene muy buena consideración, y se

    plantea como una línea de interés su introducción en el TFG para hacer un estudio de

    sus resultados de predicción.

    De esta forma, el proyecto toma su configuración actual: el estudio intensivo de la

    predicción con Random Forest y Gradient Boosting para distintos modelos de función, y

    la comparación del rendimiento de ambos métodos para cada caso.

    El proyecto se inició en febrero de 2015, pero su ejecución sufrió varias intermitencias

    debido a la compatibilización con el empleo (entre otros). Su fecha de finalización se

    sitúa a mediados de junio de 2018.

    Este trabajo ha sido tutorizado a lo largo de todo su desarrollo por José Mira McWilliams,

    profesor en el Departamento de Estadística de la Escuela Técnica Superior de

    Ingenieros Industriales de la Universidad Politécnica de Madrid (ETSII-UPM).

  • Introducción

    12 Escuela Técnica Superior de Ingenieros Industriales (UPM)

    1.2. Técnicas de predicción

    1.2.1. Random Forest

    Random Forest es una versión más compleja de la técnica Bagging (Bootstrap

    aggregating). Ambas técnicas fueron introducidas por Breiman en 2001 y 1996,

    respectivamente.

    La técnica de Bagging se basa en la generación de árboles basados en muestreos

    aleatorios, a fin de reducir la varianza de un estimador (función de predicción). La idea

    es tomar subconjuntos o “bolsas” del conjunto total de datos y predecir los valores fuera

    del subconjunto (out-of-bag). Aplicando estos pasos de forma iterativa y calculando el

    promedio de todas las predicciones, se obtienen modelos de predicción con muy buen

    rendimiento.

    La complejidad adicional de Random Forest reside en hacer Bootstrap no sólo sobre los

    datos, sino también sobre las variables de entrada. Es decir, se va a tomar sólo un

    subconjunto de las variables de entrada en cada nodo del árbol, para hacer la predicción

    de los valores out-of-bag.

    Random Forest es uno de los algoritmos de aprendizaje más precisos. Puede manejar

    un gran número de variables y resulta eficaz incluso con un número relativamente

    pequeño de observaciones.

    La traslación a R de esta técnica se concreta en el paquete randomForest. Las pruebas

    de este TFG se han realizado gracias a las funciones contenidas en este módulo.

    1.2.2. Gradient Boosting

    La técnica de Gradient Boosting fue introducida por primera vez por Breiman en 1998,

    pero el trabajo más completo al respecto lo realiza Friedman en Greedy function

    approximation: a gradient boosting machine, de 2001.

    La técnica de Boosting es muy diferente a Random Forest, ya que, a diferencia de ésta,

    no se basa en tanteos o muestreos de las observaciones.

    Boosting parte de un algoritmo de aprendizaje que busca una función de predicción

    óptima. Para ello, minimiza una función de pérdida o “riesgo empírico”, diferenciándola

  • Experimentos de predicción con técnicas Boosting y Random Forest

    13 Daniel Cimarra Muñoz

    repetidamente para descender por el máximo gradiente y disminuir el error cuadrático

    en cada iteración.

    Otra ventaja de este método es que sigue normas de predicción de fácil interpretación,

    que siguen los mismos esquemas que los modelos estadísticos más comunes. Esto es

    una ventaja frente a Random Forest, cuyo proceso de predicción es totalmente opaco

    (tipo black box).

    La traslación a R de esta técnica se concreta en el paquete mboost. Las pruebas de

    este TFG se han realizado gracias a las funciones contenidas en este módulo.

  • Objetivos

    14 Escuela Técnica Superior de Ingenieros Industriales (UPM)

    2. OBJETIVOS

    Los objetivos del presente proyecto son los siguientes:

    • Estudio general de predicción utilizando la técnica de Random Forest. Este

    método es una modificación sobre el método de Bagging, que como éste se basa

    en la generación de árboles de regresión. El objetivo es enfrentar al método, de

    manera puramente teórica, a muy diversas funciones modelo. Se quiere predecir

    la respuesta de la función para unos pocos valores, observando la diferencia con

    el valor real y el error cuadrático medio en cada caso. De esta forma, se pretende

    obtener una fotografía de la precisión de la predicción con Random Forest, y su

    variabilidad según el modelo de función.

    • Estudio general de predicción utilizando la técnica de Boosting. Este método se

    basa en un algoritmo de aprendizaje que busca una función de predicción

    óptima, a base de minimizar una función de pérdida o “riesgo empírico”. Al igual

    que en Random Forest, el objetivo es lograr una batería de pruebas de

    predicción amplia y en torno a distintos modelos de función. Esto proporcionará

    una visión general de la precisión de la predicción frente a funciones diversas.

    En este caso, dada la naturaleza de la técnica Boosting, se estudiará también el

    número de iteraciones necesarias para obtener una predicción aceptable.

    • Comparación de la predicción mediante las técnicas Boosting y Random Forest.

    Se pretende comparar la precisión de la predicción para ambos métodos,

    discerniendo cuál de los métodos es más efectivo según la función modelo. Así

    mismo, se quiere hacer una valoración general del promedio precisión / tiempo

    de ejecución, comparando ambas técnicas.

    Se han utilizado para ambos casos las mismas funciones de tipo polinomio, con hasta

    tres variables de entrada. Se utilizado un vector de 1000 valores de la variable de

    respuesta, en base al cual se han ejecutado los métodos Random Forest y Boosting.

    Entonces, se ha obtenido la predicción de los siguientes cuatro valores para unos

    valores de entrada dados.

  • Experimentos de predicción con técnicas Boosting y Random Forest

    15 Daniel Cimarra Muñoz

    3. FUNDAMENTO TEÓRICO

    3.1. Random Forest

    3.1.1. Introducción – Bagging

    El Bagging (Bootstrap aggregating) es un algoritmo de aprendizaje expuesto por Leo

    Breiman en 1996. Es una técnica que, mediante la generación de árboles basados en

    remuestreos aleatorios, reduce la varianza de un estimador (función de predicción)

    consiguiendo gran estabilidad y precisión.

    La base de este método es el remuestreo (bootstrap): se toman distintos subconjuntos

    de la muestra con los que se generan n árboles. El algoritmo de Bagging sigue los

    siguientes pasos:

    1. Construir por remuestreo B subconjuntos de observaciones L1, L2,…, LB de la

    muestra original L.

    2. Escoger un subconjunto Lb, para el que se construye un árbol de entrenamiento.

    3. Consideremos entonces Tb=L\Lb, el conjunto de los datos no utilizados en la

    construcción del árbol, también llamados Out of Bag (OOB).

    4. Se aplica el árbol obtenido al conjunto de datos Tb, obteniéndose su

    correspondiente predicción.

    5. Se repiten los pasos 1 y 2 múltiples veces.

    6. Se obtienen las predicciones a partir de los árboles creados en los pasos

    anteriores, combinando los resultados de los árboles obtenidos según dos

    modelos:

    a. Modelo de clasificación: utiliza el criterio del voto mayoritario.

    b. Modelo de regresión: utiliza la media.

    La técnica de Bagging es la base para el método de Random Forest que aplicaremos

    en este proyecto.

  • Fundamento Teórico

    16 Escuela Técnica Superior de Ingenieros Industriales (UPM)

    3.1.2. Random Forest

    Los Random Forest son una versión más compleja del Bagging presentada por el propio

    Breiman en 2001. Dicha complejidad añadida consiste en, además de hacer bootstrap

    sobre los datos del experimento, muestrear las variables de entrada en cada nodo del

    árbol. De esta forma, cada árbol se construiría utilizando sólo determinadas variables y

    no la totalidad de las variables de entrada.

    El algoritmo de Random Forest sigue los siguientes pasos:

    1. Se toma un subconjunto de los datos.

    2. Se crea un árbol a partir del subconjunto tal y cómo se hacía en Bagging, pero

    esta vez se dan pasos adicionales. Para cada nodo del árbol, se determina la

    mejor regla de partición utilizando aleatoriamente m variables de entrada de las

    n variables totales.

    3. Se repiten los pasos 1 cy 2 múltiples veces.

    4. Se obtienen las predicciones de las observaciones OOB en cada árbol obtenido.

    La predicción final se obtiene por los dos métodos ya vistos en Bagging:

    a. Modelo de clasificación: utiliza el criterio del voto mayoritario.

    b. Modelo de regresión: utiliza la media.

    Hay que tener en cuenta que cada subconjunto de observaciones se ejecuta sólo en

    aquellos árboles en los cuales no ha sido utilizado para su construcción.

    De este algoritmo se extraen dos parámetros básicos para la técnica de Random Forest:

    • Mtry: serían las m variables elegidas para la partición en cada nodo del árbol

    durante el paso 2 del algoritmo.

    • Ntree: número de árboles generados, es decir, el número de repeticiones

    comentado en el paso 3 del algoritmo.

    La elección del valor de estos parámetros condiciona de manera determinante los

    resultados de una ejecución de randomForest.

    Al disminuir mtry, el número de variables tomadas en cada partición aleatoria es menor,

    con lo que la correlación entre árboles disminuye. Aun así, no es recomendable tomar

    valores muy pequeños de mtry, ya que la precisión de los árboles disminuye.

  • Experimentos de predicción con técnicas Boosting y Random Forest

    17 Daniel Cimarra Muñoz

    En cuanto a ntree, tal y como dicta la lógica, cuanto mayor sea, tendremos un mayor

    número de árboles con los que hacer el promedio, y por tanto una mayor precisión. Aun

    así, a partir de un determinado número de árboles, la mejora en la precisión no resulta

    significativa y el tiempo de procesado será mayor, con lo que tampoco se aconseja

    tomar números exageradamente altos.

    La precisión y medidas de error son computadas para cada observación usando las

    predicciones de los OOB y se hace una media de todas las observaciones.

    Algunas de las ventajas de los Random Forests son:

    • Es uno de los algoritmos de aprendizaje más precisos.

    • Puede manejar un gran número de variables aun cuando el número de

    observaciones es relativamente pequeño.

    • Proporciona información sobre la importancia de cada una de las variables de

    entrada.

    • Es un método eficaz para estimar datos incompletos.

    • Robusto frente a valores atípicos.

    • Ofrece información acerca de las interacciones entre las variables.

    3.1.3. Análisis de sensibilidad con Random Forest

    A la hora de analizar la sensibilidad del método Random Forest para un caso concreto,

    se pueden seguir dos procedimientos:

    1. Medición del decremento medio de la precisión en la predicción de los OOB al

    excluir una variable del modelo.

    2. Medición del decremento total de impureza de un nodo resultante de realizar la

    partición según una variable. Se obtendría el valor promedio de todos los

    árboles.

    La impureza de un nodo en un árbol de regresión se mide por la suma de cuadrados de

    los residuos. Por tanto, el error cuadrático medio fuera de muestra (OOB-Mean Squared

    Error), seguiría la siguiente fórmula:

  • Fundamento Teórico

    18 Escuela Técnica Superior de Ingenieros Industriales (UPM)

    𝑀𝑆𝐸 − 𝑂𝑂𝐵 = 1

    𝑛 ∑(𝑦𝑖 − �̅�𝑖𝑂𝑂𝐵)

    2

    𝑛

    𝑖=1

    (3-1)

    Donde �̅�𝑖𝑂𝑂𝐵 es la predicción promedio de la i-ésima observación para todos los árboles

    en los que dicha observación esté en el subconjunto OOB.

    La figura 3.1 muestra cómo influye el valor de mtry y ntree en este error. Como puede

    apreciarse, el error se estabiliza a partir de un determinado número de árboles (ntree).

    Así mismo, será menor cuantas menos variables se utilicen en las particiones de cada

    nodo (mtry).

    Figura 3-1: Peso de mtry y ntree sobre el error cuadrático medio fuera de muestra (MSE-OOB). Fuente: (Buskirk, T; Kolenikov, S, 2015).

    Un parámetro relacionado con MSE-OOB es la llamada Variabilidad explicada:

  • Experimentos de predicción con técnicas Boosting y Random Forest

    19 Daniel Cimarra Muñoz

    𝑉𝑎𝑟𝑖𝑎𝑏𝑖𝑙𝑖𝑑𝑎𝑑 𝐸𝑥𝑝𝑙𝑖𝑐𝑎𝑑𝑎 (𝑉𝐸) = 1 − 𝑀𝑆𝐸 − 𝑂𝑂𝐵

    𝜎𝑦2

    (3-2)

    Donde 𝜎𝑦2 es la dispersión de la variable respuesta y. A mayor Variabilidad Explicada,

    mejores predicciones realizadas con las muestras fuera de la bolsa (out-of-bag). Por

    tanto, a mayor VE, el modelo responderá mejor frente a las variaciones de las variables

    explicativas.

    Es importante señalar que no se trata de la Variabilidad Explicada común en estadística,

    sino de un indicador específico para Random Forest. De hecho, esta Variabilidad

    Explicada podría llegar a tener valor negativo, lo que nunca sería posible en la

    Variabilidad Explicada estándar. Un valor negativo de esta VE implica serios errores de

    predicción con valores out-of-bag.

    Para cada árbol t, se calculará el 𝑂𝑂𝐵𝑀𝑆𝐸𝑡: promedio del cuadrado de las desviaciones

    de las respuestas OOB respecto de sus predicciones.

    𝑂𝑂𝐵𝑀𝑆𝐸𝑡 = 1

    𝑛𝑂𝑂𝐵,𝑡 ∑ (𝑦𝑖 − �̅�𝑖,𝑡)

    2

    𝑛

    𝑖=1,𝑖∈𝑂𝑂𝐵

    (3-3)

    Por cada variable, se permuta el valor de las variables y se calcula de nuevo el

    OOBMSE, comparándolo con el que se obtuvo originalmente. Esta diferencia es la

    medida de la relevancia de las variables.

    Si la variable 𝑋𝑗 no tuviera peso en la predicción, la permutación aleatoria de los valores

    𝑋𝑖 en OOB sería irrelevante a la hora de generar predicciones. Por tanto:

    𝑂𝑂𝐵𝑀𝑆𝐸𝑡(𝑋𝑗 𝑝𝑒𝑟𝑚𝑢𝑡𝑒𝑑) = 1

    𝑛𝑂𝑂𝐵,𝑡 ∑ (𝑦𝑖 − �̅�𝑖,𝑡(𝑋𝑗 𝑝𝑒𝑟𝑚𝑢𝑡𝑒𝑑))

    2

    𝑛

    𝑖=1,𝑖∈𝑂𝑂𝐵

    (3-4)

  • Fundamento Teórico

    20 Escuela Técnica Superior de Ingenieros Industriales (UPM)

    no debería ser significativamente diferente al valor de 𝑂𝑂𝐵𝑀𝑆𝐸𝑡. Le medida global de la

    precisión del Random Forest es el promedio de todas las réplicas de los remuestreos

    (bootstrap) de 𝑂𝑂𝐵𝑀𝑆𝐸𝑡(𝑋𝑗 𝑝𝑒𝑟𝑚𝑢𝑡𝑒𝑑) − 𝑂𝑂𝐵𝑀𝑆𝐸𝑡, la cual recibe habitualmente el

    nombre de Importancia de permutación. Es importante señalar que esta medida no

    coincide con la reducción del error cuadrático medio del Random Forest resultante de

    incorporar 𝑋𝑖 al conjunto de variables explicativas.

    El índice de importancia de permutación tiene la ventaja de tratar el impacto de cada

    variable predictora de forma individual. Marca una diferencia reapecto a otras técnicas

    de selección de variables (regresión logística, Linear Discriminant Analysis), que toman

    una o dos variables colineales que sean buenos predictores, y elimina el resto. Random

    Forest no elimina ninguna variable siempre que sea buena predictora de la respuesta.

    Lo expuesto sería la medida de la impureza del nodo siempre en cuanto a árboles de

    regresión. En el caso de los árboles de clasificación, se utiliza el índice de Gini.

    El índice de Gini mide el nivel de heterogeneidad de las observaciones asignadas a un

    nodo basándose en la partición del nodo padre. Tomando 𝑘 como el número de clases

    posibles de un árbol de clasificación, 𝑅𝑚 como la región que abarca las observaciones

    de un nodo terminal m, y Nm como el número de observaciones pertenecientes a dicho

    nodo terminal. Entonces, se define:

    �̂�𝑚𝑘 = 1

    𝑁𝑚 ∑ 𝐼(𝑦𝑡 = 𝑘)

    𝑥1∈ 𝑅𝑚

    (3-5)

    como la proporción de observaciones de clase 𝑘 de un nodo 𝑚. Si se clasifican las

    observaciones en un nodo 𝑚 dentro de la clase 𝑘(𝑚) = 𝑎𝑟𝑔 𝑚𝑎𝑥𝑘 �̂�𝑚𝑘 (clase

    mayoritaria del nodo 𝑚), entonces el índice de Gini se define como:

    ∑ �̂�𝑚𝑘�̂�𝑚𝑘′𝑘 ≠𝑘′

    = ∑ �̂�𝑚𝑘(1 − �̂�𝑚𝑘)

    𝑛

    𝑘=1

    (3-6)

  • Experimentos de predicción con técnicas Boosting y Random Forest

    21 Daniel Cimarra Muñoz

    Pongamos un ejemplo sencillo. Sea un caso de clasificación binario, con dos clases

    (positivo y negativo). Sea p la fracción de observaciones positivas asignadas a un nodo

    𝑘, y 1 − 𝑝 las observaciones negativas. El índice de Gini sería:

    𝐺𝑘 = 2𝑝(1 − 𝑝) (3-7)

    El valor del índice de Gini será menor a mayor pureza del nodo. A cada división de un

    nodo, el índice de Gini de los nodos hijos será siempre menor que el índice del nodo

    padre. Por ello, una medida de la importancia de una variable en el árbol consiste en

    sumar las reducciones del índice de Gini (de nodos padres a hijos) a lo largo de todos

    los nodos en que se utiliza la variable como variable de partición.

    Para finalizar, algunas observaciones hechas por Genuer, Poggi y Malot son: el índice

    de Gini se inclina a desfavorecer a variables que tienen muchas categorías (Strobl et al,

    2007) mientras que la importancia de permutación es un indicador más fiable. La

    segunda, la importancia de permutación parece que sobreestima la importancia de

    variable de variables altamente correlacionadas. En Strobl et al (2007) se propone el

    uso de una variante condicional.

    3.2. Boosting

    3.2.1. Introducción – Boosting

    El Boosting es uno de los algoritmos de aprendizaje más potentes introducido en los

    últimos 25 años. Se diseñó originalmente para problemas de clasificación, pero es

    extensible a la regresión.

    La potencia del Boosting está en su capacidad de proveer predicciones variables a partir

    de muestras pequeñas. También es capaz de dar predicciones robustas a partir de

    clasificadores “débiles”, es decir, con un índice de error similar al de una predicción

    aleatoria.

    Otra ventaja reside en que los algoritmos de Boosting siguen normas de predicción con

    la misma interpretación de los modelos estadísticos más comunes. Esto es una gran

  • Fundamento Teórico

    22 Escuela Técnica Superior de Ingenieros Industriales (UPM)

    ventaja sobre otros métodos como el Random Forest, cuyo proceso de predicción es

    mucho más opaco.

    Existen varias técnicas diferentes dentro del Boosting: modelo Aditivo (AdaBoost),

    Boosting Trees, Gradient Boosting, etc. En esta explicación nos centraremos en el

    Boosting basado en Gradiente, ya que será la técnica utilizada más adelante en las

    pruebas.

    3.2.2. Gradient Boosting

    Esta técnica de Boosting fue introducida por primera vez por Breiman en 1998, aunque

    es necesario destacar sobre todo el trabajo de Friedman (Greedy function

    approximation: a gradient boosting machine – 2001). Otros autores como Bühlmann y

    Yu (2003, 2006) también han publicado al respecto introduciendo nuevas mejoras.

    Uno de los rasgos a tener en cuenta de este método es que no se basa en métodos

    heurísticos, esto es, no implica tanteos u otros métodos no rigurosos. Además, los

    algoritmos de Gradient Boosting resultan en reglas de predicción con la misma

    interpretación que la de modelos estadísticos más comunes. Esta es su mayor ventaja

    frente a métodos como Random Forest, cuyas predicciones siempre son de tipo “caja

    negra”, es decir, sus normas no son visualizables o interpretables.

    Consideremos una variable de salida 𝑦 y las variables de predicción 𝑥1, … , 𝑥𝑝. La idea

    de este método es obtener una predicción “óptima” de 𝑦 a partir de 𝑥 ≔ (𝑥1, … , 𝑥𝑝).

    La idea del algoritmo de Gradient Boosting es la siguiente: pongamos un modelo

    imperfecto de predicción 𝑓𝑚. Entonces podemos mejorar el modelo añadiendo un

    estimador ℎ de manera que 𝑓𝑚+1 = 𝑓𝑚 + 𝜌. La manera de calcular 𝜌 parte de la

    consideración de que un 𝜌 perfecto, exento de error, cumpliría 𝑓𝑚+1 = 𝑓𝑚 + 𝜌 = 𝑦, y por

    tanto, 𝜌 = 𝑦 − 𝑓𝑚.

    El objetivo entonces es minimizar la función residual 𝑦 − 𝑓𝑚, o lo que es lo mismo,

    minimizar una función de pérdida 𝜌(𝑦, 𝑓) ∈ ℝ sobre una función de predicción 𝑓

    (dependiente de 𝑥).

    Se pretende la estimación de una función de predicción óptima 𝑓∗, definida por:

  • Experimentos de predicción con técnicas Boosting y Random Forest

    23 Daniel Cimarra Muñoz

    𝑓∗ ∶= 𝑎𝑟𝑔𝑚𝑖𝑛𝑓 𝔼𝑌,𝑋[𝜌(𝑦, 𝑓(𝑥𝑇))] (3-8)

    Donde la función 𝜌 se asume diferenciable respecto de 𝑓. En la práctica, la expectativa

    𝔼𝑌,𝑋 no suele ser conocida, por lo que los algoritmos de Boosting no tratan de minimizar

    esta expectativa, sino que tratan de minimizar el valor medio observado

    ℛ ∶= ∑ (𝑦, 𝑓(𝑥𝑖𝑇))𝑛𝑖=1 , también conocido como “riesgo empírico”. El algoritmo por seguir

    para minimizar ℛ sobre 𝑓 es el siguiente:

    1. Dar valores de inicialización 𝑓[0] a la función estimada, siendo 𝑓[0] un vector de

    dimensión 𝑛. En adelante se denotará la iteración 𝑚 de la función estimada por

    𝑓[𝑚]. Comenzaremos el algoritmo con 𝑚 = 0.

    2. Especificar un conjunto de base-learners. Los base-learners son una serie de

    estimadores de regresión con un conjunto fijo de variables de entrada y una

    respuesta univariante. Los conjuntos de variables de entrada pueden variar de

    un base-learner a otro. Normalmente se toman pequeños subconjuntos del

    conjunto de variables de predicción 𝑥1, … , 𝑥𝑝 por cada base-learner. En el caso

    más simple (el que se ha tomado en las pruebas de este TFG) se tomará una

    única variable para cada base-learner. Denotaremos el número de base-

    learners con 𝑃.

    3. Se Incrementa 𝑚 en 1, donde 𝑚 es el número de iteraciones.

    4. Se siguen los siguientes pasos:

    a. Computar el gradiente negativo −𝛿𝜌

    𝛿𝑓 de la función de pérdida y evaluarlo

    sobre 𝑓[𝑚−1](𝑥𝑖𝑇)𝑖=1,… ,𝑛. Así:

    𝑢[𝑚] = (𝑢𝑖[𝑚]

    )𝑖=1,…,𝑛 ≔ (−𝛿𝜌

    𝛿𝑓𝜌(𝑦𝑖 , 𝑓

    [𝑚−1](𝑥𝑖𝑇)))𝑖=1,…,𝑛

    (3-9)

  • Fundamento Teórico

    24 Escuela Técnica Superior de Ingenieros Industriales (UPM)

    b. Aplicar a cada uno de los 𝑃 base-learners el vector gradiente negativo.

    Como resultado se obtienen 𝑃 vectores de valores de predicción, donde

    cada vector es una estimación del vector gradiente negativo 𝑢[𝑚].

    c. Seleccionar el base-learner que dé mayor exactitud a 𝑢[𝑚], de acuerdo

    con el criterio de suma de cuadrados residual (RSS). Obtenemos así el

    vector �̂�[𝑚], igual a los valores obtenidos a partir del base-learner de

    menor error.

    d. Actualizar el estimador actual estableciendo 𝑓[𝑚] = 𝑓[𝑚−1] + 𝑣 �̂�[𝑚] ,

    donde 0 < 𝑣 ≤ 1 es un factor de longitud con valor real.

    5. Iterar los pasos 3 y 4 hasta alcanzar el valor de parada de la iteración mstop (la

    elección de este valor se discute a continuación).

    En el paso 4 se puede ver cómo se añade un estimador del gradiente negativo de ℛ al

    estimador actual de 𝑓∗ en cada iteración. En consecuencia, el algoritmo hace un

    descenso por el gradiente del “riesgo empírico” ℛ.

    La estimación Boosting de la iteración final mstop puede interpretarse como una función

    de predicción aditiva. De esta forma consideramos:

    𝑓 = 𝑓1 + ⋯ + 𝑓𝑝 (3-10)

    Siendo 𝑓1 + ⋯ + 𝑓𝑝 las funciones especificadas por los base-learners. Estas funciones

    dependen por tanto de las variables de predicción usadas por sus respectivos base-

    learners.

    Respecto al valor del factor 𝑣, se ha demostrado su importancia menor en el algoritmo.

    El único requerimiento es que tome valores bajos (por ejemplo, 𝑣 = 0,1).

    En cuanto a la elección de mstop, muchos autores han argumentado que los algoritmos

    de boosting no se deben ejecutar hasta la convergencia. Si así fuera, la precisión

  • Experimentos de predicción con técnicas Boosting y Random Forest

    25 Daniel Cimarra Muñoz

    pudiera verse resentida debido al overfitting (Buhlmann and Hothorn 2007). Por esta

    razón, se toma siempre un valor finito.

    En las pruebas presentadas más adelante se usan estimaciones basadas en

    validaciones cruzadas del riesgo empírico, a fin de calcular el mstop óptimo. La idea

    consiste en hacer una serie de muestreos por boosting para un mstop determinado.

    Entonces se calculan los valores promedio de todos ellos para cada una de las

    iteraciones, y de ellos se coge el valor con menor error cuadrático (y por tanto menor

    riesgo). El número de iteración para el valor con menor error es el mstop óptimo.

  • Predicción con Random Forest

    26 Escuela Técnica Superior de Ingenieros Industriales (UPM)

    4. PREDICCIÓN CON RANDOM FOREST

    4.1. Introducción

    En el presente apartado, se van a detallar los resultados de una serie de pruebas

    realizadas en torno a la predicción con Random Forest. No se ha trabajado con juegos

    de datos reales: el trabajo ha consistido en una serie de pruebas puramente teóricas

    para comprobar la fiabilidad de la predicción en randomForest cambiando por simulación

    la forma de la función de entrada.

    Más adelante, realizaremos las mismas predicciones utilizando Boosting y

    compararemos los resultados de ambos métodos. El objetivo es ver, de forma empírica,

    con qué tipo de funciones opera mejor uno u otro método de predicción.

    4.2. Paquete randomForest en R

    Las pruebas cuyos resultados se presentan a continuación, se han realizado gracias al

    paquete randomForest de R. Este paquete de funciones son una traslación a R (Liaw y

    Wierner) de los trabajos originales en Fortran de Leo Breiman y Adele Cutler.

    A continuación, se describen brevemente las funciones del paquete randomForest y los

    parámetros más importantes que se han utilizado en las presentes pruebas.

    Función randomForest

    La función randomForest ejecuta el algoritmo de Breiman para regresión y clasificación,

    devolviendo un objeto de clase randomForest que podremos utilizar como argumento

    para otras funciones del paquete. Estos son sus parámetros más importantes:

    • mtry: número de variables elegidas en cada partición de forma aleatoria.

    • ntree: número de árboles a generar.

    • maxnodes: máximo número de nodos terminales que puede tener cada uno de

    los árboles generados.

  • Experimentos de predicción con técnicas Boosting y Random Forest

    27 Daniel Cimarra Muñoz

    Función predict

    La función predict permite hacer la predicción de los datos de una matriz o data frame

    en base a un objeto de clase randomForest, que se introduce como argumento.

    Esta función devuelve un objeto compuesto de dos componentes:

    • aggregate: vector con los valores predichos a partir de todo el objeto

    randomForest.

    • individual: matriz en la que cada columna devuelve la predicción a partir de uno

    de los árboles del objeto randomForest.

    Otras funciones

    Además de las anteriores, se van a utilizar las siguientes funciones para extraer el

    máximo de información posible en cada ejecución de randomForest.

    • print.randomForest: esta función muestra las características principales del

    objeto randomForest al que hace referencia. Esto incluye el tipo (clasificación o

    regresión), ntree, mtry, la media de los cuadrados de los residuos (mean of

    squared residuals) y la variabilidad explicada.

    • plot.randomForest: método plot para objetos tipo randomForest. Muestra de

    forma gráfica el Error cuadrático medio out-of-bag (MSE-OOB) frente al número

    de árboles (ntree), tal y como se mostraba en la figura 3.1.

    4.3. Diseño de las pruebas

    Las pruebas han consistido en la ejecución de predicciones vía randomForest sobre

    distintas variantes de una función tipo polinomio. Como ya se ha comentado, la función

    escogida para la aplicación de randomForest es un polinomio que se ha ido variando

    para que sea de grado 1 o cuadrático, con o sin término independiente, etc. La función

    tiene de 1 a 3 variables de entrada en función de la prueba.

    Concretamente, se han tomado las siguientes variantes de un polinomio:

    • De grado 1 sin término independiente.

    • De grado 1 con término independiente.

    • Un término cuadrático.

    • Un término cuadrático y un término independiente.

  • Predicción con Random Forest

    28 Escuela Técnica Superior de Ingenieros Industriales (UPM)

    • Un término cuadrático y uno de grado 1.

    • Un término cuadrático con beta alta y uno de grado 1.

    • Un término cuadrático con beta muy alta y uno de grado 1.

    • Un término cúbico.

    • Un término cúbico y uno de grado 1.

    • Un término cúbico con beta alta y uno de grado 1.

    • Un término cúbico con beta muy alta y uno de grado 1.

    • Un término cúbico, uno cuadrático y uno de grado 1.

    • Un término cúbico con beta muy alta, uno cuadrático y uno de grado 1.

    • Un término cúbico, uno cuadrático con beta muy alta y uno de grado 1.

    • Un término cúbico con beta muy alta, uno cuadrático con beta muy alta y uno de

    grado 1

    • Términos cruzados: caso cuadrático.

    • Términos cruzados: caso cuadrático + grado 1.

    • Términos cruzados: caso cuadrático con beta alta + grado 1.

    • Términos cruzados: caso cuadrático con beta muy alta + de grado 1.

    • Términos cruzados: caso cúbico.

    • Taylor: grado 2.

    • Taylor: grado 2 + grado 1.

    • Taylor: grado 3.

    • Taylor: grado 3 + grado 2.

    • Taylor: grado 3 + grado 2 + grado 1.

    En los casos de “términos cruzados” se prueba con funciones en las que se multiplican

    dos variables de entrada en el mismo término del polinomio. En los casos “Taylor” lo

    que se hace es probar un polinomio de Taylor para 3 variables y de hasta grado 3. A

    modo ilustrativo, el caso de grado 3 + grado 2 + grado 1 es:

    y ~ β1X13 + β2X2

    3 + β3X33 + β4X1

    2X2 + β5X12X3 + β6X2

    2X1 + β7X22X3 + β8X3

    2X1 +

    β9X32X2+β10X1

    2 + β11X22 + β12X3

    2 + β13X1X2+β14X2X3 + β15X1X3+β16X1 + β17X2 + β18X3 +

    k

    Para cada uno de los modelos se ha generado una matriz de 1000 elementos. Estos

    son los que llamaremos datos de diseño. El objetivo en todas las pruebas ha sido

    calcular cuáles serían los siguientes 4 elementos en base a esos 1000, utilizando la

    predicción de randomForest.

  • Experimentos de predicción con técnicas Boosting y Random Forest

    29 Daniel Cimarra Muñoz

    Con los datos de diseño generados, se ha ejecutado la predicción de los siguientes 4

    elementos utilizando la función predict sobre el objeto tipo randomForest generado. Por

    último, hemos calculado los valores reales para determinar la precisión de los valores

    predichos.

    Para todas las pruebas se ha utilizado ntree = 100, mtry = 3, maxnodes = 100.

    El código en R utilizado para estas pruebas es consultable en los Anexos.

    4.4. Resultados de las pruebas

    Aunque se ha obtenido durante las pruebas y se comentará, por espacio y limpieza del

    documento en los apartados siguientes no se mostrará el objeto pred$individual. Sólo

    se recuperará el vector pred$aggregate y el valor real de los 4 elementos predichos,

    para que sea posible la comparación.

    4.4.1. Valor real frente a valor predicho.

    Como se ha comentado, el objeto pred$individual da la predicción de los 4 elementos

    utilizando cada uno de los árboles. En la tabla que se presenta a continuación, se

    recogen los valores reales de y frente a los valores predichos mediante técnicas de

    Random Forest.

    Caso realRF predRF$aggregate

    De grado 1 sin término

    independiente

    𝑦 ~ 𝛽1𝑋1 + 𝛽2𝑋2 + 𝛽3𝑋3

    4.5 3.013796

    7.5 4.982322

    10.5 7.033099

    13.5 9.039616

    5.218582 3.759920

  • Predicción con Random Forest

    30 Escuela Técnica Superior de Ingenieros Industriales (UPM)

    Caso realRF predRF$aggregate

    De grado 1 con término

    independiente

    𝑦 ~ 𝛽1𝑋1 + 𝛽2𝑋2 + 𝛽3𝑋3 + 𝑘

    8.218582 5.687677

    11.218582 7.625437

    14.218582 9.624087

    Cuadrático

    𝑦 ~ 𝛽1𝑋12

    2.25 2.25

    6.25 6.25

    12.25 12.25

    20.25 20.25

    Cuadrático con término

    independiente

    𝑦 ~ 𝛽1𝑋12 + 𝑘

    1.936586 1.936586

    5.936586 5.936586

    11.936586 11.936586

    19.936586 19.936586

    Un término cuadrático y uno de

    grado 1

    𝑦 ~ 𝛽1𝑋12 + 𝛽2𝑋2

    3.75 3.75

    8.75 8.75

    15.75 15.75

    24.75 24.75

    Un término cuadrático con beta

    alta y uno de grado 1

    𝑦 ~ 𝛽𝐻𝐼𝐺𝐻𝑋12 + 𝛽2𝑋2

    57.75 57.75

    158.75 158.75

    309.75 309.75

    510.75 510.75

    Un término cuadrático con beta

    muy alta y uno de grado 1

    𝑦 ~ 𝛽𝑉𝐻𝑋12 + 𝛽2𝑋2

    22501.5 22501.5

    62502.5 62502.5

    122503.5 122503.5

  • Experimentos de predicción con técnicas Boosting y Random Forest

    31 Daniel Cimarra Muñoz

    Caso realRF predRF$aggregate

    202504.5 202504.5

    Un término cúbico

    𝑦 ~ 𝛽1𝑋13

    3.375 3.375

    15.625 15.625

    42.875 42.875

    91.125 91.125

    Un término cúbico y uno de grado

    1

    𝑦 ~ 𝛽1𝑋13 + 𝛽2𝑋2

    4.875 4.875

    18.125 18.125

    46.375 46.375

    95.625 95.625

    Un término cúbico con beta alta y

    uno de grado 1

    𝑦 ~ 𝛽𝐻𝐼𝐺𝐻𝑋13 + 𝛽2𝑋2

    85.875 85.875

    393.125 393.125

    1075.375 1075.375

    2282.625 2282.625

    Un término cúbico con beta muy

    alta y uno de grado 1

    𝑦 ~ 𝛽𝑉𝐻𝑋13 + 𝛽2𝑋2

    33751.5 33751.5

    156252.5 156252.5

    428753.5 428753.5

    911254.5 911254.5

    Un término cúbico, uno cuadrático y

    uno de grado 1

    𝑦 ~ 𝛽1𝑋13 + 𝛽2𝑋2

    2 + 𝛽3𝑋3

    7.125 5.646884

    24.375 21.890213

    58.625 55.068192

    115.875 111.451840

  • Predicción con Random Forest

    32 Escuela Técnica Superior de Ingenieros Industriales (UPM)

    Caso realRF predRF$aggregate

    Un término cúbico con beta muy

    alta, uno cuadrático y uno de grado

    1

    𝑦 ~ 𝛽𝑉𝐻𝑋13 + 𝛽2𝑋2

    2 + 𝛽3𝑋3

    33753.75 33752.21

    156258.75 156256.31

    428765.75 428762.29

    911274.75 911270.38

    Un término cúbico, uno cuadrático

    con beta muy alta y uno de grado 1

    𝑦 ~ 𝛽1𝑋13 + 𝛽𝑉𝐻𝑋2

    2 + 𝛽3𝑋3

    22504.88 22503.47

    62518.12 62515.63

    122546.38 122542.86

    202595.62 202591.08

    Un término cúbico con beta muy

    alta, uno cuadrático con beta muy

    alta y uno de grado 1

    𝑦 ~ 𝛽𝑉𝐻𝑋13 + 𝛽𝑉𝐻𝑋2

    2 + 𝛽3𝑋3

    56251.5 56249.98

    218752.5 218750.04

    551253.5 551249.98

    1113754.5 1113750.13

    Términos cruzados: caso

    cuadrático

    𝑦 ~ 𝛽1𝑋1𝑋2

    2.25 2.25

    6.25 6.25

    12.25 12.25

    20.25 20.25

    Términos cruzados: caso

    cuadrático + grado 1

    𝑦 ~ 𝛽1𝑋1𝑋2 + 𝛽2𝑋3

    3.75 2.311598

    8.75 6.295879

    15.75 12.167389

    24.75 20.330543

    Términos cruzados: caso

    cuadrático con beta alto + grado 1

    57.75 56.21513

    158.75 156.08906

  • Experimentos de predicción con técnicas Boosting y Random Forest

    33 Daniel Cimarra Muñoz

    Caso realRF predRF$aggregate

    𝑦 ~ 𝛽𝐻𝐼𝐺𝐻𝑋1𝑋2 + 𝛽2𝑋3 309.75 306.21185

    510.75 506.34558

    Términos cruzados: caso

    cuadrático con beta muy alto +

    grado 1

    𝑦 ~ 𝛽𝑉𝐻𝑋1𝑋2 + 𝛽2𝑋3

    22501.5 22500.01

    62502.5 62499.94

    122503.5 122500.00

    202504.5 202500.01

    Términos cruzados: caso cúbico

    𝑦 ~ 𝛽1𝑋1𝑋2𝑋3

    3.375 -0.44702828

    15.625 -0.03257845

    42.875 -0.50355278

    91.125 2.57307155

    Taylor: grado 2

    𝑦 ~ 𝛽1𝑋12 + 𝛽2𝑋2

    2 + 𝛽3𝑋32 +

    𝛽4𝑋1𝑋2+𝛽5𝑋2𝑋3 + 𝛽6𝑋1𝑋3

    13.5 14.53329

    37.5 27.61335

    73.5 44.59742

    121.5 68.60972

    Taylor: grado 2 + grado 1

    𝑦 ~ 𝛽1𝑋12 + 𝛽2𝑋2

    2 + 𝛽3𝑋32 +

    𝛽4𝑋1𝑋2+𝛽5𝑋2𝑋3 + 𝛽6𝑋1𝑋3+𝛽7𝑋1 +

    𝛽8𝑋2 + 𝛽9𝑋3 + 𝑘

    17.1113 17.38102

    44.1113 31.38802

    83.1113 49.61724

    134.113 76.53532

    Taylor: grado 3 30.375 6.75

    140.625 31.25

    385.875 85.75

  • Predicción con Random Forest

    34 Escuela Técnica Superior de Ingenieros Industriales (UPM)

    Caso realRF predRF$aggregate

    𝑦 ~ 𝛽1𝑋13 + 𝛽2𝑋2

    3 + 𝛽3𝑋33 +

    𝛽4𝑋12𝑋2 + 𝛽5𝑋1

    2𝑋3 + 𝛽6𝑋22𝑋1 +

    𝛽7𝑋22𝑋3 + 𝛽8𝑋3

    2𝑋1 + 𝛽9𝑋32𝑋2

    820.125 182.25

    Taylor: grado 3 + grado 2

    𝑦 ~ 𝛽1𝑋13 + 𝛽2𝑋2

    3 + 𝛽3𝑋33 +

    𝛽4𝑋12𝑋2 + 𝛽5𝑋1

    2𝑋3 + 𝛽6𝑋22𝑋1 +

    𝛽7𝑋22𝑋3 + 𝛽8𝑋3

    2𝑋1 +

    𝛽9𝑋32𝑋2+𝛽10𝑋1

    2 + 𝛽11𝑋22 + 𝛽12𝑋3

    2 +

    𝛽13𝑋1𝑋2+𝛽14𝑋2𝑋3 + 𝛽15𝑋1𝑋3

    43.875 6.75

    178.125 31.25

    459.375 85.75

    941.625 182.25

    Taylor: grado 3 + grado 2 + grado 1

    𝑦 ~ 𝛽1𝑋13 + 𝛽2𝑋2

    3 + 𝛽3𝑋33 +

    𝛽4𝑋12𝑋2 + 𝛽5𝑋1

    2𝑋3 + 𝛽6𝑋22𝑋1 +

    𝛽7𝑋22𝑋3 + 𝛽8𝑋3

    2𝑋1 +

    𝛽9𝑋32𝑋2+𝛽10𝑋1

    2 + 𝛽11𝑋22 + 𝛽12𝑋3

    2 +

    𝛽13𝑋1𝑋2+𝛽14𝑋2𝑋3 +

    𝛽15𝑋1𝑋3+𝛽16𝑋1 + 𝛽17𝑋2 + 𝛽18𝑋3 + 𝑘

    49.4479 57.17476

    186.6979 140.92183

    470.9479 282.06823

    956.1979 514.44713

    Tabla 4-1: Random Forest - Valor real frente a valor predicho (predRF$aggregate)

    4.4.2. Residuos y Variabilidad Explicada.

    Aunque nuestro objetivo es la predicción de los 4 valores presentada en la tabla

    anterior, vamos a recoger los residuos y la variabilidad explicada de cada modelo, a fin

    de tener más datos sobre la fiabilidad de la ejecución de Random Forest. Estos datos

    se han obtenido usando la función print.

  • Experimentos de predicción con técnicas Boosting y Random Forest

    35 Daniel Cimarra Muñoz

    Caso Media cuadrados

    de los residuos

    % Variabilidad

    Explicada (VE)

    De grado 1 sin término

    independiente

    𝑦 ~ 𝛽1𝑋1 + 𝛽2𝑋2 + 𝛽3𝑋3

    10.14004 59.03

    De grado 1 con término

    independiente

    𝑦 ~ 𝛽1𝑋1 + 𝛽2𝑋2 + 𝛽3𝑋3 + 𝑘

    10.15957 58.95

    Cuadrático

    𝑦 ~ 𝛽1𝑋12

    0 100

    Cuadrático con término

    independiente

    𝑦 ~ 𝛽1𝑋12 + 𝑘

    1.606811e-31 100

    Un término cuadrático y uno de

    grado 1

    𝑦 ~ 𝛽1𝑋12 + 𝛽2𝑋2

    8.328464e-06 100

    Un término cuadrático con beta

    alta y uno de grado 1

    𝑦 ~ 𝛽𝐻𝐼𝐺𝐻𝑋12 + 𝛽2𝑋2

    0 100

    Un término cuadrático con beta

    muy alta y uno de grado 1

    𝑦 ~ 𝛽𝑉𝐻𝑋12 + 𝛽2𝑋2

    0 100

    Un término cúbico

    𝑦 ~ 𝛽1𝑋13

    0 100

  • Predicción con Random Forest

    36 Escuela Técnica Superior de Ingenieros Industriales (UPM)

    Caso Media cuadrados

    de los residuos

    % Variabilidad

    Explicada (VE)

    Un término cúbico y uno de

    grado 1

    𝑦 ~ 𝛽1𝑋13 + 𝛽2𝑋2

    7.412275e-06 100

    Un término cúbico con beta alta

    y uno de grado 1

    𝑦 ~ 𝛽𝐻𝐼𝐺𝐻𝑋13 + 𝛽2𝑋2

    0 100

    Un término cúbico con beta alta

    y uno de grado 1

    𝑦 ~ 𝛽𝑉𝐻𝑋13 + 𝛽2𝑋2

    6.859853e-06 100

    Un término cúbico, uno

    cuadrático y uno de grado 1

    𝑦 ~ 𝛽1𝑋13 + 𝛽2𝑋2

    2 + 𝛽3𝑋3

    10.2299 99.52

    Un término cúbico con beta muy

    alta, uno cuadrático y uno de

    grado 1

    𝑦 ~ 𝛽𝑉𝐻𝑋13 + 𝛽2𝑋2

    2 + 𝛽3𝑋3

    10.20306 100

    Un término cúbico, uno

    cuadrático con beta muy alta y

    uno de grado 1

    𝑦 ~ 𝛽1𝑋13 + 𝛽𝑉𝐻𝑋2

    2 + 𝛽3𝑋3

    10.22858 100

    Un término cúbico con beta muy

    alta, uno cuadrático con beta

    muy alta y uno de grado 1

    𝑦 ~ 𝛽𝑉𝐻𝑋13 + 𝛽𝑉𝐻𝑋2

    2 + 𝛽3𝑋3

    72658.62 100

  • Experimentos de predicción con técnicas Boosting y Random Forest

    37 Daniel Cimarra Muñoz

    Caso Media cuadrados

    de los residuos

    % Variabilidad

    Explicada (VE)

    Términos cruzados: caso

    cuadrático

    𝑦 ~ 𝛽1𝑋1𝑋2

    4.591298e-05 100

    Términos cruzados: caso

    cuadrático + grado 1

    𝑦 ~ 𝛽1𝑋1𝑋2 + 𝛽2𝑋3

    10.17169 86.67

    Términos cruzados: caso

    cuadrático con beta alto + grado

    1

    𝑦 ~ 𝛽𝐻𝐼𝐺𝐻𝑋1𝑋2 + 𝛽2𝑋3

    10.18625 99.98

    Términos cruzados: caso

    cuadrático con beta muy alto +

    grado 1

    𝑦 ~ 𝛽𝑉𝐻𝑋1𝑋2 + 𝛽2𝑋3

    758.6257 100

    Términos cruzados: caso cúbico

    𝑦 ~ 𝛽1𝑋1𝑋2𝑋3

    696.2923 -24

    Taylor: grado 2

    𝑦 ~ 𝛽1𝑋12 + 𝛽2𝑋2

    2 + 𝛽3𝑋32 +

    𝛽4𝑋1𝑋2+𝛽5𝑋2𝑋3 + 𝛽6𝑋1𝑋3

    233.7924 35.52

    Taylor: grado 2 + grado 1

    𝑦 ~ 𝛽1𝑋12 + 𝛽2𝑋2

    2 + 𝛽3𝑋32 +

    𝛽4𝑋1𝑋2+𝛽5𝑋2𝑋3 +

    𝛽6𝑋1𝑋3+𝛽7𝑋1 + 𝛽8𝑋2 + 𝛽9𝑋3 + 𝑘

    245.0516 36.73

    Taylor: grado 3 0 100

  • Predicción con Random Forest

    38 Escuela Técnica Superior de Ingenieros Industriales (UPM)

    Caso Media cuadrados

    de los residuos

    % Variabilidad

    Explicada (VE)

    𝑦 ~ 𝛽1𝑋13 + 𝛽2𝑋2

    3 + 𝛽3𝑋33 +

    𝛽4𝑋12𝑋2 + 𝛽5𝑋1

    2𝑋3 + 𝛽6𝑋22𝑋1 +

    𝛽7𝑋22𝑋3 + 𝛽8𝑋3

    2𝑋1 + 𝛽9𝑋32𝑋2

    Taylor: grado 3 + grado 2

    𝑦 ~ 𝛽1𝑋13 + 𝛽2𝑋2

    3 + 𝛽3𝑋33 +

    𝛽4𝑋12𝑋2 + 𝛽5𝑋1

    2𝑋3 + 𝛽6𝑋22𝑋1 +

    𝛽7𝑋22𝑋3 + 𝛽8𝑋3

    2𝑋1 +

    𝛽9𝑋32𝑋2+𝛽10𝑋1

    2 + 𝛽11𝑋22 +

    𝛽12𝑋32 + 𝛽13𝑋1𝑋2+𝛽14𝑋2𝑋3 +

    𝛽15𝑋1𝑋3

    0.00107503 100

    Taylor: grado 3 + grado 2 + grado

    1

    𝑦 ~ 𝛽1𝑋13 + 𝛽2𝑋2

    3 + 𝛽3𝑋33 +

    𝛽4𝑋12𝑋2 + 𝛽5𝑋1

    2𝑋3 + 𝛽6𝑋22𝑋1 +

    𝛽7𝑋22𝑋3 + 𝛽8𝑋3

    2𝑋1 +

    𝛽9𝑋32𝑋2+𝛽10𝑋1

    2 + 𝛽11𝑋22 +

    𝛽12𝑋32 + 𝛽13𝑋1𝑋2+𝛽14𝑋2𝑋3 +

    𝛽15𝑋1𝑋3+𝛽16𝑋1 + 𝛽17𝑋2 +

    𝛽18𝑋3 + 𝑘

    13294.36 54.91

    Tabla 4-2: Random Forest – Residuos y Variabilidad Explicada

    4.4.3. Gráficas Error (MSE-OOB) frente a número de árboles.

    Como complemento a todo lo anterior, se ha usado la función plot para obtener el Error

    cuadrático medio out-of-bag (MSE-OOB) frente al número de árboles. Es decir, se

    obtiene el error en cada generación y se ve su evolución hasta tener el bosque completo

    (se llega a ntree).

  • Experimentos de predicción con técnicas Boosting y Random Forest

    39 Daniel Cimarra Muñoz

    Caso Error cuadrático medio out-of-bag (MSE-

    OOB) frente a ntree

    De grado 1 sin término

    independiente

    𝑦 ~ 𝛽1𝑋1 + 𝛽2𝑋2 + 𝛽3𝑋3

    De grado 1 con término

    independiente

    𝑦 ~ 𝛽1𝑋1 + 𝛽2𝑋2 + 𝛽3𝑋3 + 𝑘

  • Predicción con Random Forest

    40 Escuela Técnica Superior de Ingenieros Industriales (UPM)

    Caso Error cuadrático medio out-of-bag (MSE-

    OOB) frente a ntree

    Cuadrático

    𝑦 ~ 𝛽1𝑋12

    Cuadrático con término

    independiente

    𝑦 ~ 𝛽1𝑋12 + 𝑘

  • Experimentos de predicción con técnicas Boosting y Random Forest

    41 Daniel Cimarra Muñoz

    Caso Error cuadrático medio out-of-bag (MSE-

    OOB) frente a ntree

    Un término cuadrático y uno de

    grado 1

    𝑦 ~ 𝛽1𝑋12 + 𝛽2𝑋2

    Un término cuadrático con beta

    alta y uno de grado 1

    𝑦 ~ 𝛽𝐻𝐼𝐺𝐻𝑋12 + 𝛽2𝑋2

  • Predicción con Random Forest

    42 Escuela Técnica Superior de Ingenieros Industriales (UPM)

    Caso Error cuadrático medio out-of-bag (MSE-

    OOB) frente a ntree

    Un término cuadrático con beta

    muy alta y uno de grado 1

    𝑦 ~ 𝛽𝑉𝐻𝑋12 + 𝛽2𝑋2

    Un término cúbico

    𝑦 ~ 𝛽1𝑋13

  • Experimentos de predicción con técnicas Boosting y Random Forest

    43 Daniel Cimarra Muñoz

    Caso Error cuadrático medio out-of-bag (MSE-

    OOB) frente a ntree

    Un término cúbico y uno de

    grado 1

    𝑦 ~ 𝛽1𝑋13 + 𝛽2𝑋2

    Un término cúbico con beta alta

    y uno de grado 1

    𝑦 ~ 𝛽𝐻𝐼𝐺𝐻𝑋13 + 𝛽2𝑋2

  • Predicción con Random Forest

    44 Escuela Técnica Superior de Ingenieros Industriales (UPM)

    Caso Error cuadrático medio out-of-bag (MSE-

    OOB) frente a ntree

    Un término cúbico con beta muy

    alta y uno de grado 1

    𝑦 ~ 𝛽𝑉𝐻𝑋13 + 𝛽2𝑋2

    Un término cúbico, uno

    cuadrático y uno de grado 1

    𝑦 ~ 𝛽1𝑋13 + 𝛽2𝑋2

    2 + 𝛽3𝑋3

  • Experimentos de predicción con técnicas Boosting y Random Forest

    45 Daniel Cimarra Muñoz

    Caso Error cuadrático medio out-of-bag (MSE-

    OOB) frente a ntree

    Un término cúbico con beta muy

    alta, uno cuadrático y uno de

    grado 1

    𝑦 ~ 𝛽𝑉𝐻𝑋13 + 𝛽2𝑋2

    2 + 𝛽3𝑋3

    Un término cúbico, uno

    cuadrático con beta muy alta y

    uno de grado 1

    𝑦 ~ 𝛽1𝑋13 + 𝛽𝑉𝐻𝑋2

    2 + 𝛽3𝑋3

  • Predicción con Random Forest

    46 Escuela Técnica Superior de Ingenieros Industriales (UPM)

    Caso Error cuadrático medio out-of-bag (MSE-

    OOB) frente a ntree

    Un término cúbico con beta muy

    alta, uno cuadrático con beta

    muy alta y uno de grado 1

    𝑦 ~ 𝛽𝑉𝐻𝑋13 + 𝛽𝑉𝐻𝑋2

    2 + 𝛽3𝑋3

    Términos cruzados: caso

    cuadrático

    𝑦 ~ 𝛽1𝑋1𝑋2

  • Experimentos de predicción con técnicas Boosting y Random Forest

    47 Daniel Cimarra Muñoz

    Caso Error cuadrático medio out-of-bag (MSE-

    OOB) frente a ntree

    Términos cruzados: caso

    cuadrático + grado 1

    𝑦 ~ 𝛽1𝑋1𝑋2 + 𝛽2𝑋3

    Términos cruzados: caso

    cuadrático con beta alto + grado

    1

    𝑦 ~ 𝛽𝐻𝐼𝐺𝐻𝑋1𝑋2 + 𝛽2𝑋3

  • Predicción con Random Forest

    48 Escuela Técnica Superior de Ingenieros Industriales (UPM)

    Caso Error cuadrático medio out-of-bag (MSE-

    OOB) frente a ntree

    Términos cruzados: caso

    cuadrático con beta muy alto +

    grado 1

    𝑦 ~ 𝛽𝑉𝐻𝑋1𝑋2 + 𝛽2𝑋3

    Términos cruzados: caso cúbico

    𝑦 ~ 𝛽1𝑋1𝑋2𝑋3

  • Experimentos de predicción con técnicas Boosting y Random Forest

    49 Daniel Cimarra Muñoz

    Caso Error cuadrático medio out-of-bag (MSE-

    OOB) frente a ntree

    Taylor: grado 2

    𝑦 ~ 𝛽1𝑋12 + 𝛽2𝑋2

    2 + 𝛽3𝑋32 +

    𝛽4𝑋1𝑋2+𝛽5𝑋2𝑋3 + 𝛽6𝑋1𝑋3

    Taylor: grado 2 + grado 1

    𝑦 ~ 𝛽1𝑋12 + 𝛽2𝑋2

    2 + 𝛽3𝑋32 +

    𝛽4𝑋1𝑋2+𝛽5𝑋2𝑋3 +

    𝛽6𝑋1𝑋3+𝛽7𝑋1 + 𝛽8𝑋2 + 𝛽9𝑋3 + 𝑘

  • Predicción con Random Forest

    50 Escuela Técnica Superior de Ingenieros Industriales (UPM)

    Caso Error cuadrático medio out-of-bag (MSE-

    OOB) frente a ntree

    Taylor: grado 3

    𝑦 ~ 𝛽1𝑋13 + 𝛽2𝑋2

    3 + 𝛽3𝑋33 +

    𝛽4𝑋12𝑋2 + 𝛽5𝑋1

    2𝑋3 + 𝛽6𝑋22𝑋1 +

    𝛽7𝑋22𝑋3 + 𝛽8𝑋3

    2𝑋1 + 𝛽9𝑋32𝑋2

    Taylor: grado 3 + grado 2

    𝑦 ~ 𝛽1𝑋13 + 𝛽2𝑋2

    3 + 𝛽3𝑋33 +

    𝛽4𝑋12𝑋2 + 𝛽5𝑋1

    2𝑋3 + 𝛽6𝑋22𝑋1 +

    𝛽7𝑋22𝑋3 + 𝛽8𝑋3

    2𝑋1 +

    𝛽9𝑋32𝑋2+𝛽10𝑋1

    2 + 𝛽11𝑋22 +

    𝛽12𝑋32 + 𝛽13𝑋1𝑋2+𝛽14𝑋2𝑋3 +

    𝛽15𝑋1𝑋3

  • Experimentos de predicción con técnicas Boosting y Random Forest

    51 Daniel Cimarra Muñoz

    Caso Error cuadrático medio out-of-bag (MSE-

    OOB) frente a ntree

    Taylor: grado 3 + grado 2 +

    grado 1

    𝑦 ~ 𝛽1𝑋13 + 𝛽2𝑋2

    3 + 𝛽3𝑋33 +

    𝛽4𝑋12𝑋2 + 𝛽5𝑋1

    2𝑋3 + 𝛽6𝑋22𝑋1 +

    𝛽7𝑋22𝑋3 + 𝛽8𝑋3

    2𝑋1 +

    𝛽9𝑋32𝑋2+𝛽10𝑋1

    2 + 𝛽11𝑋22 +

    𝛽12𝑋32 + 𝛽13𝑋1𝑋2+𝛽14𝑋2𝑋3 +

    𝛽15𝑋1𝑋3+𝛽16𝑋1 + 𝛽17𝑋2 +

    𝛽18𝑋3 + 𝑘

    Tabla 4-3: Random Forest – Gráficas error cuadrático medio out-of-bag (MSE-OOB)

  • Predicción con Random Forest

    52 Escuela Técnica Superior de Ingenieros Industriales (UPM)

    4.5. Análisis de los resultados

    En líneas generales, se puede decir que los resultados de predicción obtenidos a través

    de esta técnica son muy satisfactorios. Random Forest proporciona predicciones

    exactas o con bajo error para muy diferentes modelos de función.

    Sin embargo, es preciso señalar que la predicción con Random Forest se resiente de

    manera significativa al empezar a “cruzar” términos. Se puede ver muy bien en los casos

    con polinomios tipo Taylor y, sobre todo, en la función que multiplica las tres variables

    de entrada.

    En la mayoría de casos el valor predicho queda por debajo del valor real, es decir, el

    error de la predicción es por defecto, no por exceso.

    Desde el punto de vista de los resultados podríamos dividir los modelos en cinco grupos:

    1. Modelos de grado 1.

    2. Modelos con sólo un término cuadrático o cúbico.

    3. Modelos con término cuadrático y cúbico.

    4. Modelos con términos cruzados.

    5. Modelos Taylor.

    4.5.1. Primer grupo: modelos de grado 1.

    El primer grupo se refiere a los dos primeros casos, donde la predicción es relativamente

    acertada pero no exacta, quedando siempre los valores predichos algo por debajo de

    los valores reales.

    Si atendemos al porcentaje de Variabilidad Explicada (%VE), vemos que esta se queda

    cerca del 60% en los dos casos. Como se ha visto en la parte teórica, este parámetro

    compara el error cuadrático out-of-bag y la dispersión de la variable respuesta y. De esta

    forma, el término VE es una medida de la respuesta del modelo frente a las variaciones

    de las variables de entrada (a VE más alto, mejor respuesta). Un %VE del 60% es

    coherente con unos valores predichos que se acercan a los reales, pero no son del todo

    exactos.

    En la gráfica del Error cuadrático out-of-bag (MSE-OOB) en estos casos, vemos cómo

    este se va reduciendo conforme se van generando cada uno de los 100 árboles, para

  • Experimentos de predicción con técnicas Boosting y Random Forest

    53 Daniel Cimarra Muñoz

    acabar estabilizándose en un valor entre ‘10,1’ y ‘10,2’, al que la gráfica se acerca

    asintóticamente.

    4.5.2. Segundo grupo: modelos con sólo un término cuadrático o cúbico.

    En el momento en que se introduce una variable con exponente mayor que ‘1’, las

    predicciones pasan a ser exactas o con error prácticamente despreciable. Los valores

    reales y predichos son idénticos en todos los casos.

    Este comportamiento es muy visible en la segunda tabla, donde podemos apreciar que

    la media de cuadrados de los residuos es ‘0’ y el %VE es 100% en prácticamente todos

    los casos. De hecho, los casos en que los residuos no son exactamente cero son

    aquellos en los que hay un término independiente o sobre todo uno de grado 1, cuyo

    peso empuja el modelo a los resultados del primer grupo. En cualquier caso, dichos

    residuos son despreciables y los valores de predicción son exactos a los reales desde

    un punto de vista práctico.

    Si miramos las gráficas, son todas planas (error cero) con varias excepciones:

    • Cuadrático con término independiente: una gráfica en la escala de 10−31

    llena de picos y valles, es decir sin ninguna tendencia especial. No tiene mayor

    interés más allá de las pequeñas irregularidades fruto de introducir un término

    independiente en el modelo.

    • Un término cuadrático y uno de grado 1: esta gráfica si presenta una

    tendencia más clara, con un marcado pico de error en los primeros árboles

    generados, que rápidamente desciende para acercarse asintóticamente a cero

    a partir de los 20 árboles. En las siguientes gráficas en que se da más peso al

    término cuadrático, este error desaparece.

    • Un término cúbico y uno de grado 1: esta gráfica no es totalmente plana.

    Presenta un pequeñísimo pico de error, seguramente motivado por el error

    asociado al término de grado 1. No afecta de manera significativa a la predicción.

    • Un término cúbico con beta muy alta y uno de grado 1: ídem al caso anterior.

    Respecto a la inferencia del término de grado 1, tiene sentido que, con pocas

    generaciones, el modelo no haya tenido tiempo de discernir suficientemente el mayor

    peso del término cuadrático o cúbico frente al de grado 1 en el modelo. Como se ha

  • Predicción con Random Forest

    54 Escuela Técnica Superior de Ingenieros Industriales (UPM)

    visto en el primer grupo, el error del modelo de grado 1 tiende a estabilizarse en torno a

    ‘10’, lo que explicaría la tendencia creciente que es corregida rápidamente en cuanto las

    distintas regresiones van dejando claro el mayor peso del término cuadrático.

    En cuanto se le da un 𝛽 un poco más alto al término cuadrático o cúbico, su peso queda

    patente desde los primeros árboles y esta pequeña tendencia desaparece por completo.

    4.5.3. Tercer grupo: modelos con término cuadrático y cúbico.

    Este tercer grupo, en el que la función tiene término cúbico, cuadrático y de grado 1, se

    caracteriza por volver a tener un comportamiento similar al de los modelos de grado 1,

    es decir, una predicción razonablemente buena (aunque no exacta) y un error que se

    estabiliza entre ‘10’ y ’10,5’.

    En esta ocasión el %VE se mantiene en 100. Esto implica que la dispersión de la variable

    de salida se asemeja al error MSE-OOB, lo cual asegura una predicción mejor que la

    obtenida en el caso de grado 1.

    Existe una excepción: el último caso, en que le damos una beta muy alta tanto al término

    cuadrático como al cúbico. En este caso, el error es nulo hasta que, llegando al árbol

    20, el error se dispara por encima de 2 × 106, para luego bajar de manera sostenida.

    Aunque el error es grande aún en los 100 árboles, la VE se mantiene en 100 y la

    predicción sigue siendo buena. Sin embargo, este caso ilustra el peligro de las funciones

    con beta muy alto, en el que una pequeña discordancia en uno de los árboles respecto

    al resto del modelo puede introducir errores enormes.

    4.5.4. Cuarto grupo: modelos con términos cruzados.

    Estos casos prueban ciertamente los límites de la predicción mediante Random Forests,

    dando resultados muy dispares para cada modelo, por lo que se van a comentar

    individualmente.

    Términos cruzados: caso cuadrático 𝒚 ~ 𝜷𝟏𝑿𝟏𝑿𝟐

  • Experimentos de predicción con técnicas Boosting y Random Forest

    55 Daniel Cimarra Muñoz

    Aunque el error ya no es cero en este caso, los valores reales y los predichos son aún

    prácticamente idénticos. La Variabilidad Explicada es también del 100%, lo que

    corrobora el buen funcionamiento de Random Forest en este modelo.

    Si atendemos a la gráfica de error, éste se mantiene nulo hasta aproximadamente los

    55 árboles generados, momento en que se incrementa de manera muy pronunciada

    para luego volver a descender de manera sostenida.

    Éste es un comportamiento no esperado ya que la lógica dicta que, a mayor número de

    árboles, mayor será la precisión del modelo. Aparentemente se trata de un fenómeno

    de overfitting, es decir, el error se dispara a partir de un ntree determinado.

    Términos cruzados: caso cuadrático y un de grado 1 𝐲 ~ 𝛃𝟏𝐗𝟏𝐗𝟐 + 𝛃𝟐𝐗𝟑

    Términos cruzados: caso cuadrático con beta alto y un de grado 1

    𝐲 ~ 𝛃𝐇𝐈𝐆𝐇𝐗𝟏𝐗𝟐 + 𝛃𝟐𝐗𝟑

    Estos dos modelos presentan un comportamiento similar. En este caso, los valores

    predichos no son exactos, quedando siempre algo por debajo del valor real: el mismo

    comportamiento que veíamos en los modelos puramente lineales. El término de grado

    1 introduce el error, y efectivamente la predicción es más exacta al dar más peso al

    término cuadrático.

    Esta mayor precisión se logra gracias a un %VE mayor. El error en los dos casos se

    mantiene aproximadamente en ’10,2’, un valor propio de los modelos puramente

    lineales. De igual manera, las gráficas presentan un error que desciende

    asintóticamente hacia este valor. No se aprecian problemas de overfitting, al menos tras

    los 100 primeros árboles.

    Términos cruzados: caso cuadrático con beta muy alto y un de grado 1

    𝐲 ~ 𝛃𝐕𝐇𝐗𝟏𝐗𝟐 + 𝛃𝟐𝐗𝟑

    Los valores predichos son muy cercanos a los reales. En línea con lo visto en los dos

    modelos anteriores, el %VE mejora cuanto mayor peso tenga el término cuadrático, para

    llegar al 100% en este modelo.

  • Predicción con Random Forest

    56 Escuela Técnica Superior de Ingenieros Industriales (UPM)

    Sin embargo, los valores no son exactos debido al alto error cuadrático medio, que tiene

    un valor de ‘758.6257’. Mirando su evolución en la gráfica, vemos cómo el error se

    dispara desde ‘0’ hasta más de ‘1000’ en torno al árbol 85. Efectivamente, los valores

    predichos hubiesen sido exactos para un ntree menor, por lo que podríamos estar ante

    un caso de overfitting.

    Términos cruzados: caso cúbico 𝐲 ~ 𝛃𝟏𝐗𝟏𝐗𝟐𝐗𝟑

    Al correlacionar las tres variables, la ejecución de Random Forest pasa a tener

    verdaderos problemas, siendo imposible obtener una predicción de valores

    mínimamente cercana al valor real. De hecho, en la ejecución aquí hecha se obtienen

    incluso valores de predicción negativos.

    Si atendemos al %VE, se obtiene un valor negativo (‘-24’). Como hemos comentado en

    la parte teórica, esto implica serios errores de predicción con valores out-of-bag.

    En cuanto al error, vemos que se reduce rápidamente para estabilizarse en torno a ‘700’,

    un valor demasiado alto para que la predicción tenga fiabilidad.

    4.5.5. Quinto grupo: modelos Taylor.

    Como en el apartado anterior, los modelos que asemejan el polinomio de Taylor dan

    resultados diversos, por lo que comentaremos sus resultados en tres bloques.

    Taylor: grado 2

    Taylor: grado 2 + grado 1

    En estos dos casos, los valores predichos no son totalmente lejanos a los reales, pero

    no se puede decir que sea una buena predicción. Este resultado es coherente con un

    %VE de algo más del 35%.

    El error cuadrático disminuye de manera sostenida al estilo de los casos de grado 1. Sin

    embargo, se observa mucha mayor variación, con pronunciados picos y valles, sobre

    todo en el caso que incluye el grado 1. El error parece estabilizarse por encima de 200.

  • Experimentos de predicción con técnicas Boosting y Random Forest

    57 Daniel Cimarra Muñoz

    Taylor: grado 3

    Taylor: grado 3 + grado 2

    La predicción en estos dos casos no es buena, y la distancia respecto a los valores

    reales es francamente grande. Aunque el %VE no es negativo, claramente algo ha ido

    mal en la ejecución de Random Forest en ambos casos, ya que %VE es 100 y el error

    aproximadamente cero en ambos casos.

    Taylor: grado 3 + grado 2 + grado 1

    Al reintroducir el grado 1, aunque con bastante error, el modelo vuelve a funcionar. Los

    valores predichos y los reales están alejados, pero siguen una progresión parecida.

    Dichos resultados son coherentes con un %VE de 54.91.

    Por su lado, el error disminuye dramáticamente para estabilizarse entre 13000 y 13500

    a partir del árbol 30.

  • Predicción con Boosting

    58 Escuela Técnica Superior de Ingenieros Industriales (UPM)

    5. PREDICCIÓN CON BOOSTING

    5.1. Introducción

    Al igual que hemos hecho con el método de Random Forest, en este apartado se van a

    detallar los resultados de una serie de pruebas de predicción, realizadas en este caso

    mediante técnicas de Boosting. Como en el caso anterior, no se ha trabajado con juegos

    de datos reales: se han realizado una serie de pruebas teóricas cambiando la forma de

    una función de entrada. El objetivo es ver, de forma empírica, el tipo de funciones para

    las que Boosting proporciona predicciones más fiables.

    5.2. Paquete mboost en R

    Las pruebas cuyos resultados se presentan a continuación, se han realizado gracias al

    paquete mboost de R. Este paquete de funciones fue introducido en 2012 gracias a

    Benjamin Hofner, Andreas Mayr, Nikolay Robinzonov y Mathias Schmid, ya que parte

    de su manuscrito Model-based Boosting in R – A Hands-on Tutorial Using the R Package

    mboost, dentro del compendio Computational Statistics. Éste a su vez se basa en

    trabajos anteriores, como el General Additive Models (GAMs) de Hastie y Tibshirani

    (1990).

    A continuación, se describen brevemente las funciones del paquete mboost y los

    parámetros más importantes utilizados en las pruebas.

    Función gamboost

    La función gamboost aplica el Gradient Boosting del que se ha hablado en la parte

    teórica. Esta función es aplicable a modelos aditivos, es decir, que sean suma de

    funciones no necesariamente lineales. Sus parámetros más importantes son:

    • formula: descripción simbólica del modelo.

    • data: conjunto de datos que contiene las variables del modelo.

    • control: lista de parámetros de control del algoritmo.

  • Experimentos de predicción con técnicas Boosting y Random Forest

    59 Daniel Cimarra Muñoz

    En la fórmula se ha utilizado adicionalmente la función bbs(), que permite definir cada

    una de las variables como un base-learner con efectos adicionales de suavizado o

    smoothing. Este suavizado se realiza a través de la técnica de P-splines (Eilers y Marx,

    1996).

    Cálculo mstop óptimo

    Como se comentó en la parte teórica, a fin de calcular el mstop óptimo se ha hecho

    primero una serie de muestreos por boosting para un mstop determinado. En nuestro

    caso se han tomado los valores por defecto, esto es, 25 muestreos con mstop = ‘100’.

    Entonces se calculan los valores promedio de todos los muestreos para cada una de las

    100 iteraciones. La iteración con menor error cuadrático (y por tanto menor riesgo) es

    nuestro mstop óptimo.

    Hacemos todo este proceso con la función cvrisk(). Este método devuelve una

    estructura con los valores promedio del error cuadrático en cada una de las 100

    iteraciones, y en base a dichos valores propone el mstop óptimo (el que tiene menor

    error). Utilizaremos así mismo la función plot() para obtener la gráfica del objeto cvrisk

    y ver la evolución del error con las iteraciones.

    Por último, volveremos a generar el objeto gamboost para el mstop óptimo calculado.

    Función predict

    La función predict permite hacer la predicción de los datos de una matriz o dataframe

    en base a un objeto de clase mboost, que se introduce como argumento.

    En este caso, el programa no nos devuelve un individual y un aggregate como hacía en

    el caso de randomForest. En aquel caso teníamos una predicción por cada árbol,

    mientras que en este caso minimizamos el error de una única función, con lo que

    obtenemos una única predicción posible.