R - Árbol de decisiones
El árbol de decisiones es un gráfico para representar las opciones y sus resultados en forma de árbol. Los nodos del gráfico representan un evento o una elección y los bordes del gráfico representan las reglas o condiciones de decisión. Se utiliza principalmente en aplicaciones de Machine Learning y Data Mining que utilizan R.
Algunos ejemplos del uso de las herramientas de decisión son: predecir un correo electrónico como spam o no spam, predecir que un tumor es canceroso o predecir un préstamo como un riesgo crediticio bueno o malo en función de los factores de cada uno de ellos. Generalmente, un modelo se crea con datos observados, también llamados datos de entrenamiento. Luego, se utiliza un conjunto de datos de validación para verificar y mejorar el modelo. R tiene paquetes que se utilizan para crear y visualizar árboles de decisiones. Para un nuevo conjunto de variables predictoras, usamos este modelo para llegar a una decisión sobre la categoría (sí / No, spam / no spam) de los datos.
El paquete R "party" se utiliza para crear árboles de decisión.
Instalar paquete R
Utilice el siguiente comando en la consola de R para instalar el paquete. También debe instalar los paquetes dependientes, si los hubiera.
install.packages("party")
El paquete "fiesta" tiene la función ctree() que se utiliza para crear y analizar el árbol de decisiones.
Sintaxis
La sintaxis básica para crear un árbol de decisiones en R es:
ctree(formula, data)
A continuación se muestra la descripción de los parámetros utilizados:
formula es una fórmula que describe las variables de predicción y respuesta.
data es el nombre del conjunto de datos utilizado.
Los datos de entrada
Usaremos el conjunto de datos incorporado de R llamado readingSkillspara crear un árbol de decisiones. Describe la puntuación de las habilidades de lectura de alguien si conocemos las variables "edad", "tamaño de los zapatos", "puntuación" y si la persona es un hablante nativo o no.
Aquí están los datos de muestra.
# Load the party package. It will automatically load other
# dependent packages.
library(party)
# Print some records from data set readingSkills.
print(head(readingSkills))
Cuando ejecutamos el código anterior, produce el siguiente resultado y gráfico:
nativeSpeaker age shoeSize score
1 yes 5 24.83189 32.29385
2 yes 6 25.95238 36.63105
3 no 11 30.42170 49.60593
4 yes 7 28.66450 40.28456
5 yes 11 31.88207 55.46085
6 yes 10 30.07843 52.83124
Loading required package: methods
Loading required package: grid
...............................
...............................
Ejemplo
Usaremos el ctree() función para crear el árbol de decisiones y ver su gráfico.
# Load the party package. It will automatically load other
# dependent packages.
library(party)
# Create the input data frame.
input.dat <- readingSkills[c(1:105),]
# Give the chart file a name.
png(file = "decision_tree.png")
# Create the tree.
output.tree <- ctree(
nativeSpeaker ~ age + shoeSize + score,
data = input.dat)
# Plot the tree.
plot(output.tree)
# Save the file.
dev.off()
Cuando ejecutamos el código anterior, produce el siguiente resultado:
null device
1
Loading required package: methods
Loading required package: grid
Loading required package: mvtnorm
Loading required package: modeltools
Loading required package: stats4
Loading required package: strucchange
Loading required package: zoo
Attaching package: ‘zoo’
The following objects are masked from ‘package:base’:
as.Date, as.Date.numeric
Loading required package: sandwich
Conclusión
A partir del árbol de decisiones que se muestra arriba, podemos concluir que cualquier persona cuya puntuación en habilidades de lectura sea inferior a 38,3 y la edad sea superior a 6 no es un hablante nativo.