Árbol de decisión – Part 2

Decision Tree es la herramienta más poderosa y popular para la clasificación y predicción. Un árbol de decisión es una estructura de árbol similar a un diagrama de flujo, donde cada Node interno denota una prueba en un atributo, cada rama representa un resultado de la prueba y cada Node de hoja (Node terminal) tiene una etiqueta de clase. 

Decision_Tree (2)

Un árbol de decisión para el concepto PlayTennis. 

Construcción del árbol de decisión:  un árbol se puede «aprender» dividiendo el conjunto de fuentes en subconjuntos en función de una prueba de valor de atributo. Este proceso se repite en cada subconjunto derivado de manera recursiva denominada partición recursiva . La recursión se completa cuando el subconjunto en un Node tiene el mismo valor de la variable de destino, o cuando la división ya no agrega valor a las predicciones. La construcción de un clasificador de árbol de decisión no requiere ningún conocimiento del dominio o configuración de parámetros y, por lo tanto, es apropiado para el descubrimiento de conocimiento exploratorio. Los árboles de decisión pueden manejar datos de alta dimensión. En general, el clasificador de árboles de decisión tiene buena precisión. La inducción del árbol de decisiones es un enfoque inductivo típico para aprender conocimientos sobre clasificación. 
 

 

Machine-Learning-Course

Representación del árbol 
de decisión: los árboles de decisión clasifican las instancias ordenándolas hacia abajo en el árbol desde la raíz hasta algún Node hoja, lo que proporciona la clasificación de la instancia. Una instancia se clasifica comenzando en el Node raíz del árbol, probando el atributo especificado por este Node y luego moviéndose hacia abajo en la rama del árbol correspondiente al valor del atributo, como se muestra en la figura anterior. Este proceso luego se repite para el subárbol enraizado en el nuevo Node. 
El árbol de decisión de la figura anterior clasifica una mañana en particular según sea adecuada para jugar al tenis y devuelve la clasificación asociada con la hoja en particular (en este caso, Sí o No). 
Por ejemplo, la instancia 
 

(Perspectiva = Soleado, Temperatura = Caliente, Humedad = Alta, Viento = Fuerte)

se clasificaría en la rama más a la izquierda de este árbol de decisión y, por lo tanto, se clasificaría como una instancia negativa. 
En otras palabras, podemos decir que el árbol de decisión representa una disyunción de conjunciones de restricciones sobre los valores de los atributos de las instancias. 

(Perspectiva = Soleado ^ Humedad = Normal) v (Perspectiva = Nublado) v (Perspectiva = Lluvia ^ Viento = Débil) 

Índice Gini:

El índice Gini es una puntuación que evalúa la precisión de una división entre los grupos clasificados. El índice de Gini evalúa una puntuación en el rango entre 0 y 1, donde 0 es cuando todas las observaciones pertenecen a una clase y 1 es una distribución aleatoria de los elementos dentro de las clases. En este caso, queremos tener un índice de Gini lo más bajo posible. El índice de Gini es la métrica de evaluación que usaremos para evaluar nuestro modelo de árbol de decisiones.

Implementación:

Python3

#%%
from sklearn.datasets import make_classification
from sklearn import tree
from sklearn.model_selection import train_test_split
 
X, t = make_classification(100, 5, n_classes = 2, shuffle = True, random_state= 10)
X_train, X_test, t_train, t_test = train_test_split(X, t, test_size=0.3, shuffle = True, random_state=1)
#%%
model = tree.DecisionTreeClassifier()
model = model.fit(X_train, t_train)
#%%
predicted_value = model.predict(X_test)
print(predicted_value)
#%%
tree.plot_tree(model)
#%%
zeroes = 0
ones = 0
for i in range(0,len(t_train)):
    if t_train[i] == 0:
        zeroes +=1
    else:
        ones +=1
#%%      
print(zeroes)
print(ones)
#%%
val = 1 - ((zeroes/70)*2 + (ones/70)*2)
print("Gini :",val)
 
match = 0
UnMatch = 0
 
for i in range(30):
    if predicted_value[i] == t_test[i]:
        match += 1
    else:
        UnMatch += 1
         
accuracy = match/30
print("Accuracy is: ",accuracy)

Puntos fuertes y débiles del método 
del árbol de decisiones Los puntos fuertes de los métodos del árbol de decisiones son: 

  • Los árboles de decisión pueden generar reglas comprensibles.
  • Los árboles de decisión realizan la clasificación sin requerir muchos cálculos.
  • Los árboles de decisión pueden manejar variables continuas y categóricas.
  • Los árboles de decisión proporcionan una indicación clara de qué campos son más importantes para la predicción o la clasificación.

Las debilidades de los métodos de árboles de decisión: 

  • Los árboles de decisión son menos apropiados para tareas de estimación donde el objetivo es predecir el valor de un atributo continuo.
  • Los árboles de decisión son propensos a errores en problemas de clasificación con muchas clases y un número relativamente pequeño de ejemplos de entrenamiento.
  • El árbol de decisión puede ser computacionalmente costoso de entrenar. El proceso de hacer crecer un árbol de decisión es computacionalmente costoso. En cada Node, cada campo de división candidato debe ordenarse antes de que se pueda encontrar su mejor división. En algunos algoritmos, se utilizan combinaciones de campos y se debe realizar una búsqueda de pesos de combinación óptimos. Los algoritmos de poda también pueden ser costosos, ya que se deben formar y comparar muchos subárboles candidatos.

En la próxima publicación, discutiremos el algoritmo ID3 para la construcción del árbol de decisión propuesto por JR Quinlan. 

Este artículo es una contribución de Saloni Gupta . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *