Clasificación del árbol de decisión | Guía para la clasificación del árbol de decisiones

Contenidos

Visión general

  • ¿Qué es el algoritmo del árbol de clasificación de decisiones?
  • Cómo construir un árbol de decisiones desde cero
  • Terminologías relacionadas con el árbol de decisiones
  • Diferencia entre bosque aleatorio y árbol de decisión
  • Implementación de código Python de árboles de decisión

Hay varios algoritmos en el aprendizaje automático para problemas de regresión y clasificación, pero optando por El mejor y más eficiente algoritmo para el conjunto de datos dado es el punto principal a realizar mientras se desarrolla un buen modelo de aprendizaje automático.

Uno de estos algoritmos buenos para problemas de clasificación / categóricos y de regresión es el árbol de decisión

Los árboles de decisión generalmente implementan exactamente la capacidad de pensamiento humano al tomar una decisión, por lo que es fácil de entender.

La lógica detrás del árbol de decisiones se puede entender fácilmente porque muestra una estructura de tipo de diagrama de flujo / estructura en forma de árbol que facilita la visualización y extracción de información del proceso en segundo plano.

75351veeterzy-smqil_2v4vs-unsplash-6299242

Tabla de contenido

  1. ¿Qué es un árbol de decisiones?
  2. Elementos de los árboles de decisión
  3. Cómo tomar una decisión desde cero
  4. ¿Cómo funciona el algoritmo del árbol de decisión?
  5. Conocimiento de EDA (análisis de datos exploratorios)
  6. Árboles de decisión y bosques aleatorios
  7. Ventajas de Decision Forest
  8. Desventajas de Decision Forest
  9. Implementación de código Python

1. ¿Qué es un árbol de decisiones?

Un árbol de decisiones es un algoritmo de aprendizaje automático supervisado. Se utiliza tanto en algoritmos de clasificación como de regresión.. El árbol de decisiones es como un árbol con nodos. Las ramas dependen de varios factores. Divide los datos en ramas como estas hasta que alcanza un valor de umbral. Un árbol de decisión consta de los nodos raíz, los nodos secundarios y los nodos hoja.

Comprendamos los métodos del árbol de decisiones tomando un escenario de la vida real

Imagina que juegas al fútbol todos los domingos y siempre invitas a tu amigo a jugar contigo. A veces, tu amigo viene y otras no.

El factor de venir o no depende de numerosas cosas, como el clima, la temperatura, el viento y la fatiga. Comenzamos a tomar en consideración todas estas características y comenzamos a rastrearlas junto con la decisión de su amigo de venir a jugar o no.

Puede utilizar estos datos para predecir si su amigo vendrá a jugar al fútbol o no. La técnica que podría utilizar es un árbol de decisiones. Así es como se vería el árbol de decisiones después de la implementación:

23016pic-1236422

2. Elementos de un árbol de decisiones

Cada árbol de decisión consta de la siguiente lista de elementos:

un nodo

b Bordes

c Raíz

d Hojas

a) Nodos: Es el punto donde el árbol se divide según el valor de algún atributo / característica del conjunto de datos.

b) Bordes: Dirige el resultado de una división al siguiente nodo que podemos ver en la figura anterior que hay nodos para características como perspectiva, humedad y viento. Hay una ventaja para cada valor potencial de cada uno de esos atributos / características.

c) Raíz: Este es el nodo donde tiene lugar la primera división.

d) Hojas: Estos son los nodos terminales que predicen el resultado del árbol de decisiones.

3. ¿Cómo construir árboles de decisiones desde cero?

Al crear un árbol de decisión, lo principal es seleccionar el mejor atributo de la lista de características totales del conjunto de datos para el nodo raíz y para los subnodos. La selección de los mejores atributos se logra con la ayuda de una técnica conocida como medida de selección de atributos (ASM).

Con la ayuda de ASM, podemos seleccionar fácilmente las mejores características para los respectivos nodos del árbol de decisiones.

Hay dos técnicas para la MAPE:

a) Ganancia de información

b) Índice de Gini

a) Ganancia de información:

1 La ganancia de información es la medición de los cambios en el valor de la entropía después de la división / segmentación del conjunto de datos en función de un atributo.

2 Indica cuánta información nos proporciona una característica / atributo.

3 Siguiendo el valor de la ganancia de información, se está realizando la división del nodo y la construcción del árbol de decisión.

El árbol de decisión 4 siempre intenta maximizar el valor de la ganancia de información, y un nodo / atributo que tiene el valor más alto de la ganancia de información se divide primero. La ganancia de información se puede calcular utilizando la siguiente fórmula:

Ganancia de información = Entropía (S) – [(Weighted Avg) *Entropy(each feature)

Entropy: Entropy signifies the randomness in the dataset. It is being defined as a metric to measure impurity. Entropy can be calculated as:

Entropy(s)= -P(yes)log2 P(yes)- P(no) log2 P(no)

Where,

S= Total number of samples

P(yes)= probability of yes

P(no)= probability of no.

b) Gini Index:

Gini index is also being defined as a measure of impurity/ purity used while creating a decision tree in the CART(known as Classification and Regression Tree) algorithm.

An attribute having a low Gini index value should be preferred in contrast to the high Gini index value.

It only creates binary splits, and the CART algorithm uses the Gini index to create binary splits.

Gini index can be calculated using the below formula:

Gini Index= 1- ∑jPj2

Where pj stands for the probability

4. How Does the Decision Tree Algorithm works?

The basic idea behind any decision tree algorithm is as follows:

1. Select the best Feature using Attribute Selection Measures(ASM) to split the records.

2. Make that attribute/feature a decision node and break the dataset into smaller subsets.

3 Start the tree-building process by repeating this process recursively for each child until one of the following condition is being achieved :

a) All tuples belonging to the same attribute value.

b) There are no more of the attributes remaining.

c ) There are no more instances remaining.

 

5. Decision Trees and Random Forests

Decision trees and Random forest are both the tree methods that are being used in Machine Learning.

Decision trees are the Machine Learning models used to make predictions by going through each and every feature in the data set, one-by-one.

Random forests on the other hand are a collection of decision trees being grouped together and trained together that use random orders of the features in the given data sets.

Instead of relying on just one decision tree, the random forest takes the prediction from each and every tree and based on the majority of the votes of predictions, and it gives the final output. In other words, the random forest can be defined as a collection of multiple decision trees.

860360_yewfetxqgpb8adfv-3313543

6. Advantages of the Decision Tree

1 It is simple to implement and it follows a flow chart type structure that resembles human-like decision making.

2 It proves to be very useful for decision-related problems.

3 It helps to find all of the possible outcomes for a given problem.

4 There is very little need for data cleaning in decision trees compared to other Machine Learning algorithms.

5 Handles both numerical as well as categorical values

7. Disadvantages of the Decision Tree

1 Too many layers of decision tree make it extremely complex sometimes.

2 It may result in overfitting ( which can be resolved using the Random Forest algorithm)

3 For the more number of the class labels, the computational complexity of the decision tree increases.

8. Python Code Implementation

 

#Numerical computing libraries

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

#Loading Data

raw_data = pd.read_csv('kyphosis.csv')
raw_data.columns
Index(['Kyphosis', 'Age', 'Number', 'Start'], dtype = "objeto")

#Análisis exploratorio de datos

raw_data.info()
sns.pairplot(raw_data, hue="Kyphosis")
42140download2011-6768570

# Divida el conjunto de datos en datos de entrenamiento y datos de prueba

from sklearn.model_selection import train_test_split
x = raw_data.drop('Kyphosis', axis = 1)
y = raw_data['Kyphosis']
x_training_data, x_test_data, y_training_data, y_test_data = train_test_split(x, y, test_size = 0.3)

#Entrenar el modelo de árbol de decisiones

from sklearn.tree import DecisionTreeClassifier
model = DecisionTreeClassifier()
model.fit(x_training_data, y_training_data)
predictions = model.predict(x_test_data)

# Medir el rendimiento del modelo de árbol de decisiones

from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix
print(classification_report(y_test_data, predictions))
print(confusion_matrix(y_test_data, predictions))

Con esto termino este blog.
Hola a todos, Namaste
Me llamo Pranshu Sharma y soy un entusiasta de la ciencia de datos

19299img_20201025_215043_588-3585604

Muchas gracias por tomarse su valioso tiempo para leer este blog. No dude en señalar cualquier error (después de todo, soy un aprendiz) y proporcionar los comentarios correspondientes o dejar un comentario.

Dhanyvaad !!
Realimentación:
Correo electrónico: [email protected]

Los medios que se muestran en este artículo sobre DataPeaker no son propiedad de DataPeaker y se utilizan a discreción del Autor.

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.