MACHINE LEARNING - CLASIFICACIÓN Y REGRESIÓN : ARBOLES DE DECISIÓN - Just Learn

DESTACADO

viernes, 18 de septiembre de 2020

MACHINE LEARNING - CLASIFICACIÓN Y REGRESIÓN : ARBOLES DE DECISIÓN

Los árboles de decisión son un tipo de modelo predictivo donde se utiliza un grafo con estructura de árbol para la clasificación de los datos. Cada nodo del árbol simboliza una pregunta y cada rama corresponde a una respuesta concreta a dicha pregunta (un predicado). Los nodos terminales u hojas son aquellos donde el modelo ya ha clasificado los datos y el camino desde la raíz del árbol hasta una hoja define las reglas de clasificación que cumplen los casos que han caído en dicha hoja. Hay distintos algoritmos6 que implementan árboles de decisión (CART, C4.5, CHAID, etc). La mayoría son binarios, es decir, de cada nodo (o pregunta) emergen dos posibles ramas (o predicados). Veamos un ejemplo de árbol de decisión donde se está clasificando un conjunto de datos pertenecientes a pacientes que sabemos si han tenido diabetes o no. Partiendo del dataset que contiene dichos datos, crearemos un modelo con todos los parámetros de configuración por defecto como se muestra en la Figura 3.1. Esto nos genera un árbol de decisión. Previamente, habremos configurado en el dataset cuál es el campo cuyo contenido queremos predecir, que llamaremos campo objetivo. Esto se puede hacer desde el botón de edición que aparece al pasar el ratón sobre el campo o bien desde la pantalla de configuración del modelo. En nuestro caso, el campo que contiene esa información es el campo diabetes. Si no se hubiese configurado este campo, se utilizaría como tal el último campo numérico o categórico del dataset.




El objetivo del algoritmo a cada paso será separar lo mejor posible los pacientes que han tenido diabetes de los que no la tuvieron usando la información almacenada en el resto de campos. Para ello se testean las posibles opciones. Para los problemas de clasificación, se busca maximizar la ganancia de información  que proporcionaría utilizar cada uno de los campos y cada uno de sus valores para separar los datos. En el caso de problemas de regresión, el objetivo sería minimizar el error cuadrático medio8 . En el ejemplo, el campo que mejor separa los datos del nodo raíz es glucosa en sangre, y por eso vemos que aparece en el listado de la derecha y el nodo se ha coloreado con el color asignado a dicho campo. La pregunta que mejor separa los datos es si el valor del campo glucosa en sangre es mayor que 123. Ese predicado es el que representa la rama que parte del nodo raíz hacia la derecha. Las instancias que cumplen dicha condición serán las que formarán parte del siguiente nodo. En el gráfico, el grosor de las ramas es proporcional al número de instancias que cumplen la condición



Si seguimos bajando por las ramas de la derecha, llegaremos a un nodo terminal u hoja. Al llegar a una hoja, el modelo no puede afinar más la separación de los datos con ninguno de los campos y valores disponibles y retorna como predicción la clase mayoritaria en ese nodo. En la Figura 3.4 vemos que las instancias de la hoja inspeccionada corresponden a pacientes con diabetes. A la derecha se muestran las reglas que cumplen todos esos pacientes. Los botones que hay en su parte inferior aparecen al apretar la tecla mayúsculas, y permiten descargar las reglas y crear un dataset con las instancias del nodo respectivamente. Así pues, dado un nuevo paciente que cumpla este conjunto de reglas, sabemos que la predicción del modelo será que es diabético.



Por lo tanto, la primera información que obtendremos del modelo cuando aparezca un nuevo paciente es una predicción del valor de su campo objetivo, en este caso si tiene diabetes. La predicción se obtendrá partiendo del nodo raíz y respondiendo a las preguntas que tenemos en cada nodo hasta que lleguemos a un nodo terminal o bien hasta que no tengamos información sobre el campo que se usa en la pregunta del nodo. En el ejemplo, si sólo sabemos que la glucosa en sangre del paciente es 130, sólo llegaremos al nodo resaltado en la Figura 3.5. La siguiente pregunta es sobre el IMC y no tenemos esa información. Así pues, para ese paciente el modelo predeciría que tiene diabetes.



Como vemos, la predicción viene siempre acompañada de un porcentaje de confianza (confidence). La confianza mide la fiabilidad que el modelo le otorga a la predicción y es más alta cuantas más instancias del nodo predicho coincidan con ella. En este caso la confianza se ha calculado basándose en el límite inferior del inter-valo de Wilson score9 , con lo que se da una estimación pesimista. Con esta fórmula, se tiene en cuenta tanto el porcentaje de instancias del nodo predicho cuyo valor del campo objetivo coincide con la predicción, como el número total de estas. Conviene notar que la confianza está asociada a una predicción en concreto, pero no es una buena medida de la bondad de un modelo. El modelo puede tener mucha confianza en una predicción y equivocarse. Eso ocurre, por ejemplo, cuando los modelos sufren sobreajuste (overfitting) y por lo tanto no generalizan bien. El caso contrario, o underfitting también supone un problema, ya que el modelo es tan general que no captura bien las reglas existentes en los datos de entrenamiento. Por lo tanto, un buen modelo debería evitar ambos problemas y deducir los patrones existentes en los datos de entrenamiento de una forma lo suficientemente general como para que puedan ser útiles también con nuevos datos. Para medir la calidad de un modelo deberemos hacer una evaluación, prediciendo el valor del campo objetivo para casos en los que conocemos su valor real pero que no han sido usados en el entrenamiento del modelo. Comparando en cuántos de esos casos el valor real y la predicción coinciden o no tendremos una estimación de la bondad del modelo. Otra información importante que se extrae del árbol de decisión es qué campos son buenos predictores del campo objetivo y su importancia a la hora de construir el modelo.



En la Figura 3.6 vemos los campos predictores que contribuyen más a la separación de los pacientes con y sin diabetes, encabezados por el campo glucosa en sangre. El porcentaje asignado se obtiene acumulando a lo largo de todo el modelo las contribuciones a la ganancia de información (ver Figura 3.1) de cada uno de los campos. En algunos problemas, en realidad sólo nos interesa una de las clases de nuestro campo objetivo, y las instancias que hacen referencia a las demás se añaden para que el modelo sepa discriminarlas. En esos casos, podemos filtrar el árbol por dicha clase para ver las reglas que la predicen. También podemos estar interesados en predicciones cuya confianza o soporte (número de instancias que secundan la predicción) supere un cierto umbral. El umbral puede ser muy variado: en diagnóstico médico se necesitan confianzas altas (superiores al 80 %) mientras que en entornos bursátiles modelos con confianzas superiores al 50 % pueden ser considerados útiles. Para ver qué reglas nos proporcionan dichas predicciones también podemos filtrar por ambos criterios. Nos puede interesar encontrar los casos raros (confianza alta y bajo soporte) y los casos casos más frecuentes (confianza y soporte altos). Podremos ver cuales son estas predicciones accionando los filtros que vemos en la Figura 3.7.




 También puede interesarnos tener una visión global de cómo están distribuidas las predicciones. Para ello podemos utilizar el gráfico de sunburst, donde cada nodo está representado por un segmento de corona. El nodo raíz es el círculo central y se subdivide en los dos segmentos de corona que lo rodean. Cada uno de ellos a su vez se subdivide en dos segmentos correspondientes a los dos nodos de la vista de árbol, y así sucesivamente hasta llegar a segmentos terminales. La Figura 3.8 muestra dicho gráfico, que se puede colorear según la distribución de las predicciones, el nivel de confianza de cada zona o los campos que se usan en las particiones de cada nivel.




Post Bottom Ad

Responsive Ads Here

Pages