Los árboles de inferencia condicionales son una clase no paramétrica de árboles de decisión y también se conocen como particiones recursivas imparciales. Es un enfoque de partición recursiva para variables de respuesta continuas y multivariadas en un marco de inferencia condicional. Para realizar este enfoque en la programación R , ctree()
se usa la función y requiere el partykit
paquete. En este artículo, aprendamos sobre los árboles de inferencia condicional, la sintaxis y su implementación con la ayuda de ejemplos.
Árboles de inferencia condicionales
Los árboles de inferencia condicional son un tipo diferente de árbol de decisión que utiliza la partición recursiva de las variables dependientes en función del valor de las correlaciones. Evita sesgos al igual que otros algoritmos de clasificación y regresión en el aprendizaje automático. Así, evita la vulnerabilidad a los errores haciéndolo más flexible para los problemas en los datos. Los árboles de inferencia condicional usan una prueba de significancia que es una prueba de permutación que selecciona covariable para dividir y recursar la variable. El valor p se calcula en esta prueba. La prueba de significación se ejecuta en cada inicio del algoritmo. Este algoritmo no es bueno para datos con valores faltantes para el aprendizaje.
Algoritmo:
- Pruebe la hipótesis nula global entre la entrada aleatoria y las variables de respuesta y seleccione la variable de entrada con el valor p más alto con variable de respuesta.
- Realice una división binaria en la variable de entrada seleccionada.
- Realice recursivamente los pasos 1 y 2.
¿En qué se diferencian los árboles de inferencia condicional de los árboles de decisión?
Los árboles de inferencia condicional son un algoritmo de clasificación basado en árboles. Es similar a los árboles de decisión, ya que ctree()
también realiza la partición recursiva de datos al igual que los árboles de decisión. El único procedimiento que hace que los árboles de inferencia condicional sean diferentes de los árboles de decisión es que los árboles de inferencia condicional utilizan una prueba de significación para seleccionar variables de entrada en lugar de seleccionar la variable que maximiza la medida de información. Por ejemplo, el coeficiente de Gini se utiliza en árboles de decisión tradicionales para seleccionar la variable que maximiza la medida de información.
Implementación en R
Sintaxis:
ctree(fórmula, datos)Parámetros:
fórmula: representa la fórmula sobre la base de qué modelo se ajustará
datos: representa el marco de datos que contiene las variables en el modelo
Ejemplo 1:
En este ejemplo, usemos el enfoque de regresión de árboles de inferencia de condición en el conjunto de datos de calidad del aire que está presente en el paquete base de R. Tras la ejecución, se determinarán diferentes niveles de ozono en función de las diferentes condiciones ambientales. Esto ayuda a aprender el diferente comportamiento del valor del ozono en diferentes condiciones ambientales.
Paso 1: Instalación de los paquetes necesarios.
# Install the required # Package for function install.packages("partykit")
Paso 2: Cargando el paquete requerido.
# Load the library library(partykit)
Paso 3: Creación del modelo de regresión del árbol de inferencia de condiciones.
air <- subset(airquality, !is.na(Ozone)) airConInfTree <- ctree(Ozone ~ ., data = air)
Paso 4: Imprima el modelo de regresión.
# Print model print(airConInfTree)
Producción:
Model formula: Ozone ~ Solar.R + Wind + Temp + Month + Day Fitted party: [1] root | [2] Temp <= 82 | | [3] Wind 6.9 | | | [5] Temp 77: 31.143 (n = 21, err = 4620.6) | [7] Temp > 82 | | [8] Wind 10.3: 48.714 (n = 7, err = 1183.4) Number of inner nodes: 4 Number of terminal nodes: 5
Paso 4: Trazar el gráfico.
# Output to be present as PNG file png(file = "conditionalRegression.png") # Plotting graph plot(airConInfTree) # Save the file dev.off()
Producción:
Explicación:
Después de ejecutarse, el código anterior produce un gráfico de árbol de inferencia condicional que muestra el valor de ozono en forma de diagrama de caja en cada Node en diferentes condiciones ambientales. Como en la imagen de salida anterior, el Node 5 muestra el valor mínimo de ozono. Además, el aprendizaje del comportamiento muestra que Temp6.9 muestra el menor valor de ozono en la calidad del aire.
Ejemplo 2:
En este ejemplo, usemos el enfoque de clasificación de los árboles de inferencia de condiciones en el conjunto de datos del iris presente en el paquete base de R. Después de ejecutar el código, se determinarán diferentes especies de plantas de iris en función de la longitud y el ancho de los pétalos.
Paso 1: Instalación de los paquetes necesarios.
# Install the required # Package for function install.packages("partykit")
Paso 2: Cargando el paquete requerido.
# Load the library library(partykit)
Paso 3: Creación del modelo de clasificación del árbol de inferencia de condiciones
irisConInfTree <- ctree(Species ~ ., data = iris)
Paso 4: Imprimir modelo de clasificación
# Print model print(irisConInfTree)
Producción:
Model formula: Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width Fitted party: [1] root | [2] Petal.Length 1.9 | | [4] Petal.Width <= 1.7 | | | [5] Petal.Length 4.8: versicolor (n = 8, err = 50.0%) | | [7] Petal.Width > 1.7: virginica (n = 46, err = 2.2%) Number of inner nodes: 3 Number of terminal nodes: 4
Paso 4: Trazar el gráfico
# Output to be present as PNG file png(file = "conditionalClassification.png", width = 1200, height = 400) # Plotting graph plot(irisConInfTree) # Save the file dev.off()
Salida:
Explicación:
Después de ejecutar el código anterior, las especies de plantas de iris se clasifican según la longitud y el ancho de los pétalos. Como en el gráfico anterior, las especies de setosa tienen una longitud de pétalos <= 1,9.
Publicación traducida automáticamente
Artículo escrito por utkarsh_kumar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA