[MÚSICA] Bienvenidos a un nuevo video de nuestro curso de Minería de datos. En este video comenzaremos a ver un nuevo modelo de clasificación automática, los árboles de decisión. La motivación principal de este video es entender cómo funcionan los árboles de decisión, primero comprendiendo la forma en que opera un árbol una vez que you está construido y luego analizando cómo funciona el algoritmo para construir un árbol directamente desde los datos. Supongamos que tenemos un problema, donde nos interesa un modelo que sepa clasificar solicitudes de créditos hipotecarios entre las clases Aprobado y Rechazado. Notar la tabla de datos de entrenamiento que aparece en la diapositiva. Recordar que es de entrenamiento, you que la última columna contiene la clase a la cual pertenece cada dato, es decir, tenemos un historial de solicitudes de créditos hipotecarios y sabemos, para cada uno de esos casos, la respuesta correcta a cada una de esas solicitudes. Las variables en este ejemplo son Cliente, que indica si una solicitud de crédito es generada por un cliente del banco o no; la variable Ingreso, que indica el nivel de ingresos de la persona que solicita el crédito; y la variable Historial, que indica que tan bueno ha sido el comportamiento crediticio de la persona en el pasado. En la diapositiva tenemos un ejemplo de árbol de decisión que podría ser una solución a nuestro problema. Los nodos azules son los nodos internos del árbol, los nodos rojos y verdes son las hojas del árbol. En general, cada nodo interno del árbol representa una variable o atributo de nuestra base de datos. Por ejemplo, el nodo Cliente, se refiere a la variable Cliente que corresponde a la primera columna de nuestros datos de entrenamiento. Cada link que sale de los respectivos nodos representa los posibles valores que puede tomar el nodo desde donde salen los links. Por ejemplo, el nodo que corresponde a la variable Historial puede tomar los valores Bueno o Malo. Cada nodo realiza una pregunta basada en los valores que el atributo puede tomar, dependiendo del resultado, el árbol nos va guiando por el camino a seguir. Por ejemplo, el nodo Historial pregunta si el valor de la variable Historial es bueno o malo. Si es bueno, el camino sigue por la flecha del lado izquierdo; si es malo, el camino sigue por la flecha del lado derecho. Los nodos hoja corresponden al resultado final de la clasificación generada por el árbol. Por ejemplo, si un dato llega a la primera hoja verde del lado izquierdo, significa que la clasificación del dato es aprobado. Clasificar un nuevo dato usando un árbol de decisión es bastante simple, solo tenemos que ingresar el nuevo dato al árbol, bajando desde el nodo raíz hasta llegar a una hoja. Veamos un ejemplo. Supongamos que nuestro nuevo dato es una persona que es cliente, tiene un buen historial y un alto ingreso. La idea entonces es ver cuál sería su clasificación. Vamos entonces bajando por el árbol con este nuevo dato. Primero, pasamos por el nodo cliente. La pregunta es si es que el dato corresponde a un cliente o no. Como en este caso la respuesta es sí, bajamos por la rama del lado izquierdo. Ahora nos preguntamos cómo es el historial de esta persona. Como sabemos que el historial es bueno, bajamos entonces por la rama izquierda. Finalmente, llegamos a una hoja, la cual nos entrega el valor de la clase que el modelo estaría eligiendo para ese dato. En este caso, la persona es aprobada. Acabamos de ver que clasificar usando un árbol es bastante sencillo, pero obviamente lo que nos interesa es saber, ¿cómo obtenemos el árbol de decisión? Principalmente, ¿cómo hacemos que se construya solo desde los datos? Lo primero que necesitamos para construir el árbol es nuestro conjunto de entrenamiento, es decir, una base de datos con instancias etiquetadas. La construcción del árbol comienza con la elección del nodo raíz. Para ello, tenemos que seleccionar la mejor variable de nuestra base de datos. Por ahora, vamos a asumir que tenemos un criterio para seleccionar la mejor variable. Después entraremos en los detalles sobre cómo evaluar la calidad de cada una de las variables. Supongamos que la mejor variable en este caso es la variable Cliente. Procedemos entonces a iniciar la construcción del árbol, colocando como nodo raíz al nodo que corresponde a la variable Cliente. La idea ahora es repetir lo mismo, pero seleccionando la mejor variable cuando you asumimos que el valor de cliente es Sí, y cuando you asumimos que el valor de cliente es No. Para realizar esta separación, debemos identificar las filas, considerando los valores posibles que puede tomar la variable Cliente, de tal forma de enviar las filas por distintos brazos debajo del nodo raíz. En este caso, los valores posibles son Sí y No, y están marcados con colores azul y rojo, respectivamente. El siguiente paso es separar toda nuestra base de datos de entrenamiento en dos, las filas que corresponden con el valor Sí de la variable Cliente y las filas que corresponden con el valor No de la misma variable. Procedemos a separar, entonces, la tabla de datos y cada una se envía a cada uno de los brazos posibles del nodo Cliente. Luego debemos elegir la mejor variable para poner en cada uno de los brazos posibles. Por ejemplo, supongamos que en el lado izquierdo la mejor variable es Historial. Colocamos entonces un nodo nuevo correspondiente a la variable Historial como hijo izquierdo de la variable Cliente. De forma análoga, para el lado derecho, buscamos la mejor variable también. Supongamos que en este caso la mejor variable es Ingreso. Colocamos, entonces, un nodo nuevo correspondiente a la variable Ingreso como hijo derecho de la variable Cliente. Ahora todo el proceso se repite, partiendo desde los nodos Historial e Ingreso, y así seguimos hasta que no queden datos para continuar. La recursión general, entonces, del algoritmo, contiene los siguientes pasos, tomar el mejor atributo, colocarlo como nodo raíz, dividir el set de entrenamiento de acuerdo a los valores de este atributo y continuar recursivamente haciendo lo mismo. El primer criterio para detener el proceso de construcción, es decir, la llamada recursiva, es preguntarnos si llegamos a un punto donde todas las filas que quedan pertenecen a la misma clase. En ese caso, ponemos una hoja con el nombre de esa clase. El segundo criterio de detención de la recursión es cuando llegamos a un punto en que todas las filas de la base de datos son iguales en sus variables. En ese caso, colocamos una hoja que contenga a la clase que más se repite entre esas filas. En este video, aprendimos de forma general cómo es el proceso de construcción de un árbol de decisión. Vimos en qué consistían las llamadas recursivas y los criterios de detención del algoritmo. No debemos olvidar que un árbol necesita de un conjunto de entrenamiento para poder construirse, lo cual lo cataloga como un tipo de aprendizaje supervisado. No olvidar que aún tenemos pendiente estudiar la forma en que elegimos al mejor atributo para colocar cada uno de los nodos. [AUDIO_EN_BLANCO]