3.1 Arboles de Decisión en RM
Operador Decision Tree
Este operador genera un modelo de árbol de decisión, que se puede utilizar para clasificación y regresión.
Para obtener el ejemplo, debemos ir a:
Repository ==> Samples ==> processes ==> 01_Learner ==> 01_Decision_Tree, hacemos doble clic en este último y podemos observar el ejemplo.
Operador Retrieve Golf
Este operador recupera la tabla Golf del repositorio interno, es importante destacar que el atributo Play (atributo que indica si se juega o no) es el label u objetivo de este DataSet.
Parámetro Gain Ratio
Como se puede observar arriba el criterio elegido es gain_ratio o Tasa de Ganancia.
Esta tasa de Ganancia se obtiene de la Ganancia de Información (la cual favorece a los atributos con muchos valores) dividido el Split Information, el cual es el valor proporcional a la cantidad de cortes que realiza el atributo.
Gráfico del árbol de decisión
Al realizar la corrida, se puede observar como resultado el árbol de decisión, en donde en la raiz del mismo se eligió el atributo Outlook o Ambiente.
Y la descripción gráfica del árbol.
Operador ID3
Este operador utiliza un árbol de decisión ID3 sin podar a partir de datos nominales para su clasificación.
Para ello se debe insertar el operador Read Excel e ID3 tal como se muestra en la imagen a continuación.
Descargue el archivo Golf.xls que se muestra a continuación
En el operador Read Excel, debemos elegir Import Configuration Wizard ..., ahí le indicamos el archivo Golf.xls que acabamos de descargar, elijamos la hoja Golf_Nominal (observe que todos los atributos son nominales, en especial este operador trabaja solo con atributos nominales), excluimos el atributo Nº y definimos el atributo Juega como label.
Se obtiene un resultado similar al operador Decision Tree que se mostró arriba.
Esto se debe principalmente porque se usó el mismo Criterio: Information_Gain.
¿Qué ocurre si en el ejemplo anterior cambiamos el criterio?
¿Qué ocurriría si cambiamos el criterio en el ejemplo anterior por Gaint_Ratio?
Los resultados que se obtienen son diferentes tal como puede observarse.
¿Cómo puedo saber cuando un parámetro o un operador es mejor que otro?
Se hace a través del operador Performance
Este operador se utiliza para la evaluación del desempeño. Ofrece una lista de valores de criterios de rendimiento. Estos criterios de rendimiento se determinan automáticamente para adaptarse al tipo de tarea de aprendizaje.
Supongamos que en el modelo anterior queremos evaluar el rendimiento. Insertamos los siguientes operadores con las correspondientes conexiones.
Aquí aparecen unos operadores nuevos que a continuación explicaremos:
Operador Split Data
Este operador divide el conjunto de registros del DataSet que recibe como entrada en los subconjuntos indicados con los tamaños relativos especificados.
En nuestro caso, nos dirigimos a Parámetros ==> Edit Enumeration ...
Agregamos dos subconjuntos, el primero con 0.8, es decir con el 80% de los registros y el segundo con 0.2 o el 20%
Puede observarse en el gráfico de arriba, que el operador Split Data recibe una sola entrada y tiene dos salidas, la primera corresponde al primer subconjunto del 80% y la segunda al segundo subconjunto del 20%.
Operador Apply Model
Este operador aplica un modelo del DataSet que recibe como entrada.
En el gráfico puede observarse que recibe dos entradas. La primera del operador ID3 y la segunda del segundo subconjunto
Operador Performance
Este operador como se dijo arriba se utiliza para la evaluación del desempeño. Recibe una entrada de Apply Model y genera dos salidas, tal como se mostrará a continuación.
Análisis de la Performance
Ahora indagaremos los resultados obtenidos:
El primer resultado es el que habíamos visto previamente al aplicar el operador ID3 con el parámetro information_gain.
El segundo resultado nos muestra la tabla final con columnas o atributos adicionales de confianza.
El tercer resultado (y el mas significativo), nos señala la eficiencia del modelo, en este caso es del 100% (recordemos que estamos trabajando con pocos datos y lo que queremos probar es el operador Performance).
Análisis del operador Performance cambiando los parámetros de ID3
¿Qué ocurre si cambiamos los parámetros del operador ID3?
Primero si definimos como criterio Gain_Ratio se observa que la exactitud del modelo sigue siendo del 100%.
Pero si cambiamos el criterio por accuracy la exactitud del modelo que se obtiene es del 33,33%.
Así como en este caso cambiamos los parámetros se puede cambiar también los operadores de arboles de decisión para obtener en algunos casos una mayor exactitud del modelo.
Operador Random Forest
Como se dijo previamente Random Forest genera un conjunto de árboles que son usados para realizar clasificación y Regresión.
A continuación analizaremos el ejemplo de Random Forest, para ello, debemos ir a:
Operators ==> Random Forest ==> Help ==> Jump to Tutorial ==> "Generating a set of random trees using the random forest Operator".
Al hacer esto nos aparecerá el siguiente ejemplo, en donde podemos observar que se 10 árboles y el criterio que se utiliza es Gain_Ratio.
Como se puede observar el segundo resultado que se genera es el Modelo Random Forest en donde se generan 10 árboles, en la imagen se muestra el primer árbol.
Y como tercer resultado se muestra una tabla con los pesos finales obtenidos para cada atributo.