Aprendizaje automático: algoritmo de árbol de decisión (CLS, ID3, CART)

1. Árbol de decisión

El árbol de decisión, también conocido como árbol de decisión, es una estructura de árbol que se utiliza para la clasificación. Cada nodo interno

(nodo interno) representa una prueba de un determinado atributo, cada borde representa un resultado de la prueba y el nodo hoja (hoja) representa un determinado

Para una clase o una distribución de clases, el nodo superior es el nodo raíz.

Los árboles de decisión proporcionan una manera de mostrar reglas como qué categorías se obtendrán y en qué condiciones.

El siguiente ejemplo es un árbol de decisión creado para resolver este problema, desde el cual se pueden ver los componentes básicos del árbol de decisión: nodos de decisión,

Nudos de ramas y hojas.

La siguiente figura muestra un ejemplo de un árbol de decisiones utilizado en los negocios y muestra si un usuario interesado en productos electrónicos comprará una computadora.

El conocimiento se puede utilizar para predecir un determinado registro o la intención de compra de una persona.

Este árbol de decisión clasifica los registros de ventas e indica si un consumidor de productos electrónicos comprará una computadora "compra_

computadora". Cada nodo interno (cuadro cuadrado) representa una detección de un determinado atributo. Cada nodo hoja (cuadro ovalado) representa una

Categoría: compra_computadoras=sí o compra_computadoras=no

En este ejemplo, los vectores propios son:

(edad, estudiante, calificación crediticia, compra_computadoras)

El formato de los datos para la toma de decisiones es:

(edad, estudiante, calificación crediticia)

Ingresar un nuevo registro para decidir puede predecir a qué clase pertenece el registro.

Resumen: un árbol de decisión es una estructura de árbol. Es esencialmente un árbol compuesto por múltiples nodos de juicio, en el que cada nodo interno representa un

Juicio sobre atributos, cada rama representa la salida de un resultado de juicio y, finalmente, cada nodo hoja representa un resultado de clasificación.

2. Algoritmo CLS

El algoritmo CLS (Concept Learning System) es un algoritmo de aprendizaje temprano de árboles de decisión. Es la base de muchos algoritmos de aprendizaje de árboles de decisión.

base. La idea básica de CLS es comenzar desde un árbol de decisión vacío y seleccionar un determinado atributo (atributo de clasificación) como atributo de prueba. Esta prueba es

Corresponde al nodo de decisión en el árbol de decisión. Dependiendo del valor de este atributo, las muestras de entrenamiento se pueden dividir en los subconjuntos correspondientes.

está vacío, o las muestras en el subconjunto pertenecen a la misma clase, entonces el subconjunto es un nodo hoja; de lo contrario, el subconjunto corresponde al nodo interno del árbol de decisión.

punto, es decir, el nodo de prueba, debe seleccionar un nuevo atributo de clasificación para dividir el subconjunto hasta que todos los subconjuntos estén vacíos o pertenezcan a

Misma categoría.

Problemas con el algoritmo CLS:

El uso de diferentes atributos y orden de prueba producirá diferentes árboles de decisión.

 

3. Algoritmo ID3 

Pasos del algoritmo de establecimiento del árbol de decisión ID3:

Determinar el conjunto de atributos de clasificación;

Para la tabla de datos actual, cree un nodo N;

Si todos los datos de la base de datos pertenecen a la misma clase, N es la hoja y la clase a la que pertenece (categoría pura) está marcada en la hoja;

Si no hay otros atributos en la tabla de datos que puedan considerarse, N también es una hoja, y las hojas se marcan de acuerdo con el principio de que la minoría obedece a la mayoría.

Categoría (categoría impura);

De lo contrario, seleccione el mejor atributo como atributo de prueba del nodo N según el valor esperado de información promedio E o el valor GANANCIA;

Después de seleccionar un atributo de nodo, para cada valor en ese atributo: genere una rama a partir de N y agregue los datos relacionados con esa rama en la tabla de datos.

Recopile la tabla de datos que forma el nodo de rama y elimine la columna de atributos del nodo en la tabla;

Si el atributo de la tabla de datos de la rama no está vacío, vaya al primer paso y utilice el algoritmo anterior para crear un subárbol a partir del nodo.

Comparación de funciones heurísticas de algoritmos de árbol de decisión comunes:

Desventajas del algoritmo ID3:

(1) El algoritmo ID3 utiliza la ganancia de información como criterio de evaluación al seleccionar atributos de rama en el nodo raíz y en cada nodo interno. ganancia de información

La desventaja es que tienden a seleccionarse atributos con más valores y, en algunos casos, dichos atributos pueden no proporcionar mucha información valiosa.

(2) El algoritmo ID3 solo puede construir árboles de decisión para conjuntos de datos cuyos atributos de descripción son atributos discretos.

4. Algoritmo C4.5

Mejoras del algoritmo C4.5 al algoritmo ID3:

Mejora 1: utilice la tasa de ganancia de información en lugar de la ganancia de información para seleccionar atributos

Mejora 2: capacidad de discretizar atributos de valores continuos

Mejora 3: puede manejar valores de atributos faltantes

Mejora 4: podar después de construir el árbol de decisión

Supongamos que las muestras en D están divididas por el atributo A, y el atributo A tiene v valores diferentes {a1, a2, ..., aj, según las observaciones de los datos de entrenamiento,

...,AV}. Si A es un valor discreto, D se puede dividir en v subconjuntos {D1, D2, ..., Dj, ..., Dv} según el atributo A. Entre ellos, DJ

es un subconjunto de muestras en D que tienen valores de atributo aj en A. Estas divisiones corresponderán a las ramas que salen de este nodo A.

La métrica de ganancia de información está sesgada hacia probar atributos con más valores, es decir, tiende a seleccionar el atributo A con v mayor.

Como ejemplo extremo: considere el atributo PID que actúa como identificador único. Dividir el PID producirá una gran cantidad de particiones (tantas como la cantidad de muestras

Muchas), cada clasificación contiene solo una muestra y cada partición es pura.

La ganancia de información obtenida al dividir el atributo PID es la mayor, obviamente esta división no es útil para la clasificación.

C4.5 utiliza información dividida para normalizar la ganancia de información y selecciona el atributo con la mayor tasa de ganancia de información como división

Atributos.

Información(D) = 0,940 Información(D) = 0,911 Ganancia(ingreso) = 0,029

Hay 4 personas de ingresos altos, 6 personas de ingresos medios y 4 personas de ingresos bajos.

Ingresos de SplitInfo (D) = - 4/14 * log4/14 - 6/14 * log6/14 - 4/14 * log4/14 = 1,557

GainRatio(ingresos) = Ganancia(ingresos) / SplitInfoingresos(D) = 0,029 / 1,557 = 0,019 

Para atributos de valor continuo, ordene los valores de los atributos de pequeño a grande y tome el punto medio de cada par de valores adyacentes como el posible punto de división split_point.

Suponiendo que un atributo de valor continuo tiene N valores de atributo diferentes, se pueden encontrar N-1 posibles puntos de división. Verifique todos los posibles puntos de división,

Tome el punto de división que maximiza la ganancia de información y divida D en D1: A <= punto_división y D2: A > punto_división (una división

punto, bisección, árbol binario).

C4.5 no usa el punto medio, sino que usa directamente el valor más pequeño de un par de valores como posible punto de división. Por ejemplo, en este ejemplo, 5, 6 se usarán como posible punto de división.

Puede ser dividido.

En algunos casos, es posible que a los datos disponibles les falten valores para algunos atributos, p.

Un enfoque sencillo consiste en darle el valor más común para esa propiedad, como "soleado" o "lluvia" para la propiedad meteorológica de la sexta instancia.

Una estrategia más compleja es asignar una probabilidad a cada valor posible de A.

     Ganancia(A) = F (Info(D) – InfoA (D)) donde F es la proporción de instancias con valores de atributos faltantes; calcule Info(D) y

InfoA (D) ignora las instancias a las que les faltan valores de atributos.

Información(D) = -8/13×log(8/13) - 5/13×log(5/13) = 0,961 bits

InfoWeather(D) = 5/13×(-2/5log(2/5) - 3/5×log(3/5)) + 3/13×(-3/3log(3/3) - 0/ 3 ×log(0/3)) +

5/13×(-3/5log(3/5) - 2/5×log(2/5)) = 0,747 bits

Ganancia (clima) = 13/14 × (0,961 - 0,747) = 0,199 bits

Al calcular SplitInfo, el valor del atributo faltante se calcula como un valor normal. En este ejemplo, el clima tiene cuatro valores, respectivamente.

¿Está soleado, nublado, lluvioso o?, y luego calcule su SplitInfo.

Tiempo SplitInfo (D) = - 5/14×log(5/14) - 3/14×log(3/14) - 5/14×log(5/14) - 1/14×log(1/14) = 1,809 bits

GainRatio(clima) = Ganancia(clima) / SplitInfoweather(D) = 0,199 / 1,809

Al dividir, las instancias a las que les faltan valores de atributos se asignan a todas las ramas, pero con un peso:

En este ejemplo, un total de 13 de las 14 instancias tienen valores de atributos climáticos que no faltan: 5 de ellos tienen atributos climáticos de "soleado" y 3 de ellos tienen atributos climáticos de "soleado".

El atributo es "nublado" y el atributo meteorológico de 5 casos es "lluvia".

Entre las 14 instancias de este ejemplo, a un total de 1 instancia le falta un valor de atributo meteorológico, por lo que se estima la sexta instancia a la que le falta un valor de atributo meteorológico: El tiempo está soleado

La probabilidad de es 5/13, la probabilidad de que el clima esté nublado es 3/13 y la probabilidad de que el clima esté lluvioso es 5/13.

Entonces la situación T1 se puede dividir en: humedad <= 75 2 jugar 0 no jugar

                                          Humedad >75 5/13 jugar 3 no jugar  

Los nodos hoja se definen en la forma (N/E), donde N es el número de instancias que llegan al nodo hoja y E son las instancias que pertenecen a otras categorías.

número. Por ejemplo, No jugar (3.4/0.4) significa que 3,4 instancias llegaron al nodo "No jugar", de las cuales 0,4 instancias no pertenecen a "No jugar".

En cualquier caso, la probabilidad de que la humedad sea <=75 es 2,0/(2,0 + 3,4) y la probabilidad de que la humedad sea >75 es 3,4/(2,0 + 3,4).

Cuando la humedad es <=75, la probabilidad de clasificar como jugando = 100% y la probabilidad de clasificar como no jugar = 0.

Cuando la humedad >75, la probabilidad de clasificación como jugando = 0,4/3,4=12% y la probabilidad de clasificación como no jugando = 3/3,4=88%.

La distribución de probabilidad de la clasificación final es: jugar = 2,0/5,4×100% + 3,4/5,4×12% = 44%, no jugar = 3,4/5,4×88% = 56%

El algoritmo del árbol de decisión anterior aumenta la profundidad de cada rama del árbol hasta que puede clasificar perfectamente los ejemplos de entrenamiento.

En aplicaciones prácticas, cuando hay ruido en las muestras de entrenamiento o el número de muestras de entrenamiento es demasiado pequeño para producir una representación representativa de la función objetivo,

Esta estrategia puede encontrar dificultades al realizar el muestreo. Cuando ocurre la situación anterior, el árbol producido por este algoritmo simple se ajustará demasiado a las muestras de entrenamiento.

Ejemplo (sobreajuste: sobreajuste). Causas del sobreajuste: hay ruido en las muestras de entrenamiento, las muestras de entrenamiento son demasiado pequeñas, etc.

Ventajas y desventajas de C4.5:

Ventajas: las reglas de clasificación generadas son fáciles de entender y tienen alta precisión.

Desventajas: en el proceso de construcción del árbol, el conjunto de datos debe escanearse y ordenarse varias veces, lo que provoca la ineficiencia del algoritmo. este

Además, C4.5 solo es adecuado para conjuntos de datos que pueden residir en la memoria. Cuando el conjunto de entrenamiento es demasiado grande para caber en la memoria, el programa no se puede ejecutar.

5. Algoritmo CARRITO

El árbol de clasificación y regresión (CART: árbol de clasificación y regresión) se caracteriza por hacer un uso completo de la bisección en el proceso de cálculo.

La estructura del árbol de rama (estructura de árbol Bianry), es decir, el nodo raíz contiene todas las muestras y el nodo raíz se divide según ciertas reglas de división.

Dividido en dos nodos secundarios, este proceso se repite en los nodos secundarios hasta que ya no se puede dividir y se convierte en un nodo hoja. Utilice GINI para referirse a

Los marcadores se utilizan para seleccionar atributos de división, se utiliza división binaria (se generará un árbol binario) y se utiliza poda de complejidad de costos.

Descripción del algoritmo: donde T representa el conjunto de muestras actual y el conjunto de atributos candidatos actual está representado por T_attributelist.

(1) Crear nodo raíz N (2) Asignar categoría a N

(3) Si todos T pertenecen a la misma categoría o solo queda una muestra en T, devuelva N como un nodo hoja; de lo contrario, asígnele atributos

(4) Para cada atributo en T_attributelist, realice una división del atributo y calcule el coeficiente GINI de esta división.

(5) Atributo de prueba de N test_attribute = el atributo con el coeficiente GINI más pequeño en T_attributelist

(6) Divida T para obtener los subconjuntos T1 y T2

(7) Repita (1)-(6) para T1

(8) Repita (1)-(6) para T2

El algoritmo CART considera que cada nodo tiene la posibilidad de convertirse en un nodo hoja, y asigna una categoría a cada nodo. Los métodos para asignar categorías pueden ser

Para utilizar la categoría que aparece más en el nodo actual, también puede consultar el error de clasificación del nodo actual u otros métodos más complejos.

El índice de Gini es el más pequeño y la división es más pura. El atributo con el índice de Gini más pequeño (o el ΔGini más grande) se selecciona como atributo de división.

Manejo de atributos de valores discretos: tomando el ingreso como ejemplo, todos los subconjuntos posibles del atributo de ingreso: {bajo, medio, alto}, {bajo, medio}, {bajo,

Alto}, {medio, alto}, {bajo}, {medio}, {alto}. Considerando todas las particiones binarias posibles y calculando el índice de Gini antes y después de la partición, elija

El subconjunto que puede producir el índice de Gini más pequeño se utiliza como subconjunto dividido.

6. Segmentación recursiva (algoritmo codicioso)

A partir del nodo raíz, considere una variable de división j y un punto de división s, y obtenga dos regiones. La variable óptima j y el punto de división s deben satisfacer

Para j y s dados, la solución del problema de optimización más interno es:

Para un j dado, el punto de división s se puede encontrar rápidamente.

De esta manera, al recorrer todas las variables independientes, podemos encontrar el mejor par de j y s.

 

 

 

 

 

Supongo que te gusta

Origin blog.csdn.net/weixin_43961909/article/details/132537620
Recomendado
Clasificación