Opencv Advanced 18-Introducción al árbol de decisiones basado en Opencv

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

El árbol de decisiones es uno de los primeros algoritmos de aprendizaje automático, que se originó a partir de la imitación de ciertos procesos humanos de toma de decisiones y pertenece a los algoritmos de aprendizaje supervisados .

La ventaja de los árboles de decisión es que son fáciles de entender y algunos árboles de decisión se pueden utilizar tanto para clasificación como para regresión. Dos de los diez principales algoritmos de minería de datos son árboles de decisión [1]. Hay muchas versiones diferentes de árboles de decisión. La versión típica es el algoritmo ID3 más antiguo y el algoritmo C4.5 mejorado. Estos dos algoritmos se pueden utilizar para la clasificación. Otra rama de la mejora del algoritmo ID3 es el algoritmo "Árboles de clasificación y regresión (CART), que se puede utilizar para clasificación o regresión . El algoritmo CART proporciona la base para algoritmos importantes como Random Forest y Boosting. En OpenCV, el árbol de decisión implementa el algoritmo CART .

2. Principio del árbol de decisión

2.1 Idea básica del árbol de decisión

El primer árbol de decisión utilizaba la estructura si-entonces para dividir los datos, donde si significa condición
y luego significa elección o decisión.

2.2 Método de representación del árbol de decisión

En el árbol de decisión, las características del vector de muestra generalmente se denominan atributos de la muestra , y
a continuación se utilizará el nombre habitual de "atributo".

El árbol de decisión clasifica las muestras organizándolas desde el nodo raíz hasta un determinado nodo hoja. El nodo raíz es la posición donde el árbol se divide por primera vez y el nodo hoja es la etiqueta de clasificación a la que pertenece la muestra.
Cada nodo del árbol representa una prueba de una determinada propiedad de la muestra, y cada rama posterior del nodo corresponde a un posible valor de la propiedad. La forma de clasificar muestras es comenzar desde el nodo raíz de este árbol, probar el atributo especificado por este nodo y luego descender según la rama correspondiente al valor de ese atributo para una muestra determinada. Este proceso se repite en el subárbol con raíz en el nuevo nodo.

El árbol de decisión [1] se ilustra a continuación con un ejemplo de la disposición de los clientes a esperar una mesa cuando cenan en el restaurante 271. La Tabla 5-1
es la lista de atributos de las muestras del conjunto de datos y la Tabla 5-2 es el conjunto de datos. Hay 12
muestras en el conjunto de datos y cada muestra tiene 10 atributos. Dos problemas de clasificación. La estructura de un árbol de decisión inferida a partir de un conjunto de datos existente se muestra en la Figura 5-1.

inserte la descripción de la imagen aquí
Tabla 5-2 Conjunto de datos sobre la disposición de un restaurante a esperar una mesa

inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí
Como se muestra en la Figura 5-1, el que tiene un signo de interrogación en el cuadro es el nodo raíz (dividiendo los datos según un atributo determinado
) y el resto son nodos hoja (etiquetas).

Al principio, el árbol de decisión divide el conjunto de datos en 3 subconjuntos según el número de comensales en el restaurante (atributo Patrons): el subconjunto izquierdo es para ningún comensal, el subconjunto del medio es para algunos comensales y el subconjunto derecho es para ocupación total. El principio del nodo raíz de otros subárboles es similar.

Cuando aparecen nuevos datos desconocidos, el árbol se puede simplemente recorrer según las características y alcanzar una determinada etiqueta, es decir, si está dispuesto a esperar una estación. Aunque el ejemplo es simple, demuestra claramente la interpretabilidad de los modelos de árboles de decisión y la capacidad de aprender reglas simples.

De los ejemplos, podemos ver que el problema central del árbol de decisión es: ¿qué atributo se debe seleccionar para cada nodo de arriba a abajo
para obtener el mejor clasificador? Por lo tanto, elegir el mejor atributo de división es la clave del árbol de decisión.

2.3 Selección de los mejores atributos de segmentación

La evaluación de las mejores propiedades de segmentación generalmente se basa en la idea de reducción de impurezas de la muestra (Impurity Reduction) o ganancia de pureza (Purity Gain). La pureza de la muestra se refiere a la homogeneidad de los tipos de muestras en la colección (homogeneidad). Si solo hay un tipo de muestra en el conjunto de datos, el conjunto de datos tiene la pureza de muestra más alta y la impureza más baja. Cuantos más tipos de muestras haya en el conjunto de datos, menor será la pureza de la muestra y mayor será la impureza . Obviamente, esperamos que después de segmentar el conjunto de muestras de acuerdo con un determinado atributo, la pureza de la muestra aumente y la impureza disminuya, es decir, cuanto mayor sea la ganancia de pureza del conjunto de muestras después de la segmentación, mejor.

Para calcular la ganancia de pureza, es necesario definir la medida de impureza (
Medida de impureza), es decir, el método para calcular la impureza; luego restar la impureza después de la segmentación del nodo de la impureza antes de la segmentación del nodo y obtener la Índice de reducción de impurezas (es decir, ganancia de pureza); finalmente seleccione el atributo que reduce más las impurezas para la segmentación.

Los diferentes tipos de árboles de decisión utilizan diferentes métodos para medir la impureza de la muestra, como la entropía de la información, el coeficiente de Gini, el error cuadrático, etc. A continuación se presentan varios métodos comúnmente utilizados para calcular la impureza y seleccionar atributos de segmentación óptimos.

1. El
algoritmo ID3 de entropía de información utiliza ganancia de información (Ganancia de información) para seleccionar el mejor atributo para construir un árbol de decisión, es decir, el atributo que puede obtener la mayor ganancia de información se utiliza como el mejor atributo para dividir el conjunto de datos actual. Para comprender el método de cálculo de la ganancia de información, primero es necesario comprender su concepto.

La entropía de la información (Entropía de la información) fue propuesta por el científico de la información estadounidense Shannon en 1948
. La información es la eliminación de la incertidumbre, que puede medirse mediante probabilidad. Cuanto mayor es la probabilidad de un evento, menor es su incertidumbre y viceversa, mayor es la incertidumbre. La entropía de la información es una medida de la cantidad de información necesaria para eliminar la incertidumbre, es decir, la cantidad de información que puede contener un evento desconocido. Cuanto menor sea la probabilidad de que ocurra un evento y mayor la incertidumbre, mayor será la cantidad de información y mayor la entropía; cuanto mayor sea la probabilidad y menor la incertidumbre, menor será la cantidad de información y menor la entropía .

A continuación se presenta la entropía de la información y la ganancia de información desde la perspectiva de la teoría de la información [1]. La función de incertidumbre
I se define para representar la cantidad de información del evento, y ella y la probabilidad p del evento deben satisfacer las siguientes condiciones:

◎ I§≥0, I (1) = 0, es decir, el contenido de información de cualquier evento no es negativo y el
contenido de información de un evento con probabilidad 1 es 0.

◎I(p1∙p2)=I(p1)+I(p2), es decir, la cantidad de información generada por dos eventos independientes debe ser igual a la suma de sus respectivas cantidades de información
.

◎ I§ es continua y es una función monótonamente decreciente de la probabilidad p, y un pequeño cambio en la probabilidad corresponde a un
pequeño cambio en la cantidad de información.


Se encuentra que la función logarítmica satisface las condiciones anteriores al mismo tiempo, por lo tanto, el contenido de información del evento se puede expresar mediante la fórmula (5-1) :

inserte la descripción de la imagen aquí

En la fórmula, si a = 2, lo que a menudo se dice es el bit de unidad de información (bit). Por ejemplo, la cantidad de información proporcionada por el evento de lanzar una moneda normal y llamar la atención es −log2(0.5)=1bit. Si hay una moneda sesgada en la acuñación y la probabilidad de que salga cara es 0,99, entonces la cantidad de información proporcionada por el evento de lanzar la moneda y salir cara es

−log2(0,99)=0,0145 bits。

Si hay múltiples eventos, ¿cómo se debe calcular la entropía promedio de estos eventos?

Supongamos que la probabilidad de que ocurran los eventos v1,…, vJ es p1,…, pJ, donde [p1,…, pJ] es una
distribución de probabilidad discreta. Luego, el contenido de información promedio de múltiples eventos se define mediante la fórmula (5-2):

inserte la descripción de la imagen aquí
En la fórmula, H§ es la entropía de la información de la distribución discreta p, p=[p1,…, pJ]. En todos
los cálculos de entropía, defina 0lg0=0. Si sólo hay dos tipos de eventos (booleanos), entonces la probabilidad es
p=[p1, 1−p1].

inserte la descripción de la imagen aquí

Supongamos que D es un conjunto booleano con 14 muestras, incluidas 9 muestras positivas y 5 muestras negativas
. Calcule la entropía de información de D según la fórmula (5-2) de la siguiente manera:

inserte la descripción de la imagen aquí
Si todos los miembros de D pertenecen a la misma clase, es decir, H(D)=H([1, 0]), entonces la
entropía de información de D H(D)→0. Si la probabilidad de aparición de muestras positivas y negativas en D es 0,5, entonces H (D) = H ([0,5,
0,5]) = 1. Se puede ver que en el conjunto booleano, la entropía de la información es mayor cuando la probabilidad de muestras positivas y negativas es igual.

La entropía de la información es una medida de la incertidumbre de las cosas. En los árboles de decisión, se puede utilizar no solo para
medir la incertidumbre de las categorías, sino también para medir la incertidumbre de las muestras de datos que contienen diferentes características. Cuanto mayor sea la entropía de información de un vector de columna de características, mayor será la incertidumbre de la característica, es decir, mayor será el grado de confusión, por lo que debemos dar prioridad a la segmentación de esta característica. La entropía de la información proporciona la base y el estándar más importante para la segmentación de árboles de decisión.

  1. ganancia de información

La ganancia de información del atributo A para el conjunto de datos de entrenamiento D es G (D, A), que es la diferencia entre la entropía de información H (D) del conjunto D
y la entropía condicional H (D | A) de D en las condiciones dadas. por atributo A:

5-3
En la fórmula, n indica que para el atributo A, el conjunto de muestras se divide en n subconjuntos (es decir, n valores del atributo A); |Di| indica el número de muestras en el i-ésimo subconjunto después de la segmentación. por atributo A, |D |Indica el número de muestras en el conjunto de muestras D.


H(D) mide la incertidumbre de D, y la entropía condicional H(D|A) mide la incertidumbre restante de D después de conocer el atributo A. Se puede ver que Esta medida se denomina información mutua en teoría de la información y ganancia de información en el algoritmo ID3 del árbol de decisión.

Volviendo al ejemplo del restaurante presentado anteriormente, el conjunto de datos original D contiene 12
muestras [x1,…, x12], el vector de características de cada muestra tiene 10 atributos y la etiqueta es si se debe esperar a la mesa, donde [
x1, x3, x4, x6, x8, x12] 6 personas decidieron esperar la mesa, [x2x5, x7, x9, x110, x11] 6 personas
decidieron no esperar la mesa. Como se muestra en la Figura 5-2 (a), según el atributo Patrons, se puede dividir en tres subconjuntos: Ninguno, Algunos y Completo, es decir, n = 3 (tres valores del atributo Patrons). La ganancia de información dividida por el atributo Patronos es la siguiente:

inserte la descripción de la imagen aquí
Como se muestra en la Figura 5-2 (b), según el atributo Tipo, se puede dividir en
cuatro subconjuntos: francés, italiano, tailandés y hamburguesa, es decir, n = 4 (cuatro valores del atributo Tipo) . La ganancia de información dividida por el atributo Tipo es la siguiente:

inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí

Obviamente G(D, Patrocinadores) > G(D, Tipo). De hecho, la ganancia de información de la segmentación por atributo de Patrocinadores
es la más alta. Por lo tanto, seleccione el atributo Patronos como atributo del nodo raíz para comenzar a dividir.

  1. tasa de ganancia de información

Hay muchos problemas en el algoritmo ID3 al utilizar la ganancia de información. Por ejemplo, en las mismas condiciones, los atributos con más valores (n es mayor) tienen mayor ganancia de información que los atributos con menos valores, es decir, la ganancia de información como estándar tiende a estar sesgada hacia características con más valores. Por ejemplo, un atributo tiene 2 valores, cada uno con una probabilidad de 1/2; otro atributo tiene 3 valores, cada uno con una probabilidad de 1/3. De hecho, todas son variables completamente inciertas, pero la ganancia de información de tomar 3 valores es mayor que la de tomar 2 valores .

El algoritmo C4.5 mejora esto utilizando el índice de ganancia de información
como criterio de segmentación. La tasa de ganancia de información es la relación entre la ganancia de información y la entropía característica
:

inserte la descripción de la imagen aquí

En la fórmula, D es el conjunto de muestra, A es el atributo de muestra y la expresión de la entropía característica HA (D) del atributo A es la siguiente:

inserte la descripción de la imagen aquí
Según la fórmula anterior, la entropía de característica del atributo Patronos en el ejemplo es:

inserte la descripción de la imagen aquí

Es decir, al seleccionar el atributo de segmentación óptimo a través del índice de ganancia de información,
se debe seleccionar el atributo Patrocinadores en comparación con el atributo Tipo.

  1. Coeficiente GINI

Tanto el algoritmo ID3 como el algoritmo C4.5 se basan en el modelo de entropía de la información e implican una gran
cantidad de operaciones logarítmicas. Para simplificar la operación manteniendo las ventajas del modelo de entropía de información, el algoritmo CART propone utilizar el coeficiente de Gini en lugar de la tasa de ganancia de información. El coeficiente de Gini (índice de Gini) representa la impureza del modelo: cuanto menor sea el coeficiente de Gini, menor será la impureza del modelo y mejor será el atributo correspondiente .

Específicamente, en el problema de clasificación, suponiendo que hay J categorías en la muestra y la probabilidad de la j-ésima categoría
es pj, la expresión del coeficiente de Gini es:
inserte la descripción de la imagen aquí

En la fórmula, |Dj| es el número de muestras de la clase j-ésima y |D| es el número de muestras en el conjunto de muestras D.

Si se trata de un problema de dos categorías, si la probabilidad de que la muestra pertenezca a la primera categoría es p, entonces
la expresión del coeficiente de Gini es:

inserte la descripción de la imagen aquí
Si D se divide en n partes según el atributo A, entonces, bajo la condición del atributo A,
la expresión del coeficiente de Gini de D es:

inserte la descripción de la imagen aquí
Se segmenta el atributo con el coeficiente de Gini más pequeño.

La curva de relación entre la impureza del nodo de clasificación binaria y la probabilidad p de un determinado tipo de muestra se muestra en la Figura 5-3. Para fines de comparación, la entropía de la información se reduce dos veces, de modo que ella y el Gini La curva de coeficiente pasa por el punto (0,5, 0,5).

inserte la descripción de la imagen aquí

Puede verse en la Figura 5-3 que las curvas del coeficiente de Gini y la entropía de la información están muy cerca. Por tanto, el
coeficiente de Gini puede utilizarse como sustituto aproximado del modelo de entropía
. El algoritmo CART utiliza el coeficiente de Gini para seleccionar las características del árbol de decisión . Al mismo tiempo, para simplificar aún más, el algoritmo CART solo divide el valor de una determinada característica en dos cada vez, de modo que lo que construye el algoritmo CART es un árbol binario, lo que simplifica aún más el cálculo.

  1. error cuadrático medio

Todos los anteriores son métodos de cálculo de árboles de clasificación y el resultado son categorías discretas, como esperar
una mesa en un restaurante o no esperar una mesa. El árbol de regresión genera valores continuos, como los precios de vivienda previstos. Para implementar un árbol de regresión, es necesario utilizar una medida de impureza adecuada para la regresión. El error cuadrático medio (Error cuadrático medio, MSE) se utiliza principalmente en árboles de regresión, que es el cuadrado de la diferencia entre el valor observado y el valor predicho.

inserte la descripción de la imagen aquí
En la fórmula, |D| es el número de muestras en el conjunto de datos D, y yi e yi son el valor de salida y el valor predicho de la i-ésima muestra, respectivamente
. El valor predicho se puede reemplazar por el promedio de los valores de salida yi:

inserte la descripción de la imagen aquí
Si el conjunto D se divide en n subconjuntos según el atributo A, el error cuadrático medio después de la segmentación es:

inserte la descripción de la imagen aquí
El modelo de regresión CART utiliza el método de medición del error cuadrático medio. Su objetivo es encontrar los
conjuntos de datos D1 y D2 divididos en los conjuntos de datos D1 y D2 en ambos lados de cualquier nodo S correspondiente a cualquier atributo de segmentación A, y encontrar los respectivos error cuadrático medio de los conjuntos de datos D1 y D2. Al mismo tiempo, el atributo correspondiente a la suma mínima de los errores cuadráticos medios de D1 y D2 se expresa como:

inserte la descripción de la imagen aquí
Entre ellos, c1 es la media de salida de muestra del conjunto de datos D1 y c2 es la media de salida de muestra del conjunto de datos D2.

El árbol de clasificación CART utiliza la categoría con mayor probabilidad en el nodo hoja como
categoría predicha del nodo actual. El resultado del árbol de regresión no es una categoría, utiliza la media o mediana de las hojas finales para predecir el resultado.

criterios de parada

Como se mencionó anteriormente, los árboles de decisión siguen una recursión codiciosa para dividir nodos, ¿cómo
y cuándo se detienen?

De hecho, se pueden aplicar muchas estrategias para definir los criterios de parada (Stopping Criteria). El más común es el número mínimo de puntos de datos , y si una mayor división violaría esta restricción, entonces deje de dividir.
Otro criterio de parada es la profundidad del árbol . Detener criterios junto con otros parámetros puede ayudarnos a lograr un modelo de árbol de decisión con buena capacidad de generalización. Los árboles de decisión que son muy profundos o que tienen demasiados nodos que no son hojas a menudo provocan un sobreajuste.

poda

Dado que el establecimiento del árbol de decisión depende completamente de las muestras de entrenamiento, es fácil que el algoritmo se sobreadapte al conjunto de entrenamiento
, lo que resulta en una capacidad de generalización deficiente. Para resolver el problema de sobreajuste, es necesario podar el árbol de decisión, es decir, eliminar algunos nodos, incluidos los nodos hoja y los nodos intermedios, para simplificar el árbol de decisión. La poda es similar a la regularización en la regresión lineal y puede aumentar la capacidad de generalización de los árboles de decisión .

Existen dos métodos habituales de poda: prepoda y pospoda.

La poda previa consiste en detener el crecimiento del árbol de decisión por adelantado durante el proceso de construcción del árbol de decisión, para evitar generar demasiados nodos. Este método es simple, pero no muy práctico, porque es difícil juzgar exactamente cuándo debe detenerse el crecimiento.

La pospoda consiste en eliminar algunos nodos después de que se construye el árbol de decisión. Los métodos comunes de pospoda incluyen la poda de errores pesimista, la poda de errores mínimos, la poda de complejidad de costos y la poda basada en errores. El algoritmo CART en OpenCV utiliza poda de complejidad de costos, es decir, primero genera un árbol de decisión, luego genera todos los árboles CART podados posibles y finalmente usa validación cruzada para probar los efectos de varias podas y selecciona la mejor capacidad de generalización. estrategia de poda.

Supongo que te gusta

Origin blog.csdn.net/hai411741962/article/details/132445843
Recomendado
Clasificación