Árbol de decisión en Sklearn

Árbol de decisión en Sklearn
Los árboles de decisión son modelos jerárquicos en el aprendizaje automático que se pueden aplicar a los problemas de clasificación y regresión. Comparan recursivamente las características de los datos de entrada y finalmente predicen la salida en el nodo de hoja. Discutiremos sobre los árboles de decisión y su implementación en la Biblioteca Sklearn.

¿Qué es un algoritmo de árbol de decisión??

Los modelos de clasificación y regresión se construyen utilizando una técnica de árbol de decisión. Mapea los vectores de valores a las etiquetas y representa el clasificador como un árbol de decisión. Dicho árbol se puede comparar con las declaraciones anidadas if-then-else donde la condición siempre es una prueba directa de los valores en el vector. Y las ramas entonces y de los demás son declaraciones más allá de lo mismo o proporcionan una etiqueta de categorización. Un árbol de decisión aprende de los datos, encuentra las características más adecuadas para diferenciar la salida y verifica recursivamente los datos de entrada dados para predecir la etiqueta. Un árbol de decisión puede verse así, por ejemplo, si el vector de entrada es (A, B, C):

Si a> 10
Entonces si B < 20
Luego regresa "1"
De lo contrario si un < 15
Luego regresa "0"
De lo contrario regresar "1"
Más si c 5
Luego regresa "1"
De lo contrario regresa "0"
De lo contrario regresar "1"

Tenga en cuenta que los otros árboles de decisión tienen esa característica además de esta. En consecuencia, el problema no es solo localizar dicho árbol de decisión, sino también identificar el más adecuado. El hecho de que la entrada sea una muestra de una colección considerable del mundo real y que el árbol de decisión está construido para identificar los vectores en este conjunto más extenso determina con precisión lo que significa "adecuado" en este caso. Por lo tanto, la definición de "adecuado" depende de (1) las propiedades de este conjunto más amplio (por ejemplo, la probabilidad de cada vector) y (2) el impacto financiero de la clasificación errónea en cada instancia específica.

Terminologías relacionadas con el árbol de decisión

Nodo raíz: El nodo raíz del árbol de decisión es donde comienza todo. Se representa todo el conjunto de datos, que luego se divide en dos o más conjuntos homogéneos.

Nodo de hojas: Los nodos de la hoja son los últimos nodos de salida del árbol. Después de lo cual, el árbol no se puede dividir más.

Terrible: La división del nodo de decisión/nodo raíz en sub-nodos de acuerdo con las condiciones especificadas se conoce como división.

Rama: Una rama o subárbol es un árbol creado a partir de un nodo de un árbol principal.

Poda: La poda es el procedimiento de eliminar las ramas indeseables del árbol.

Nodos de padres e hijos: El nodo raíz del árbol se conoce como el nodo principal, mientras que los nodos que se originan a partir de él se denominan nodos infantiles.

Implementación de árboles de decisión en Sklearn

Importación de las bibliotecas:

de Sklearn.DataSets Import Make_Classification
de Sklearn.Decisión de importación de árboles
de Sklearn.model_selection import cross_val_score

Creando el conjunto de datos:

X, y = make_classification (random_state = 42)
Imprimir ('Los datos del tren son', x)
Imprimir ('Los datos de prueba son', y)

Producción:

Los datos del tren son [[-2.02514259 0.0291022 -0.47494531 ... -0.33450124 0.86575519
-1.20029641]
[1.61371127 0.65992405 -0.15005559 ... 1.37570681 0.70117274
-0.2975635]
[0.16645221 0.95057302 1.42050425 ... 1.18901653 -0.55547712
-0.63738713]

[-0.03955515 -1.60499282 0.22213377 ... -0.30917212 -0.46227529
-0.43449623]
[1.08589557 1.2031659 -0.6095122 ... -0.3052247 -1.31183623
-1.06511366]
[-0.00607091 1.30857636 -0.17495976 ... 0.99204235 0.32169781
-0.66809045]]
Los datos de prueba son [0 0 1 1 0 0 0 1 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 0
0 1 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 1 1 1 1 1 0 1 0 0 1 0 1 0 1 0
1 1 1 0 0 0 1 0 1 0 1 1 1 1 1 0 0 1 0 1 1 0 1 1 0 0]

Creando el modelo:

modelo = DecisionTreeClassifier (Random_State = 0)
Cross_val_score (modelo, x, y, cv = 10)

Producción:

matriz ([0.9, 1. , 0.8, 1. , 1. , 0.9, 0.9, 1. , 0.9, 1. ])

Conclusión

Discutimos los modelos de árboles de decisión en Sklearn que crean una estructura similar a un árbol para clasificar o predecir las etiquetas de salida. Dividen los nodos para reducir la profundidad del árbol. También vimos los diversos términos relacionados con los árboles de decisión como el nodo de hoja, nodos parentales, poda, etc. Luego, más tarde discutimos la implementación de Sklearn.