Árboles de decisión: ¿Cómo podar un CARRITO?

Generalmente hay dos métodos para podar árboles: poda previa y poda posterior. La poda previa implicará técnicas que realizan paradas tempranas (por ejemplo, detenemos la construcción de nuestro árbol antes de que esté completamente desarrollado). La poda posterior implicará el crecimiento completo del árbol en su totalidad, y luego recortar los nodos del árbol de abajo hacia arriba.


Con la poda previa, generalmente tomaremos algunas decisiones antes de comenzar a cultivar el árbol. Me gusta dividir estas decisiones en dos categorías: decisiones relacionadas con el tamaño y decisiones relacionadas con la condición.

(1) Para decisiones relacionadas con el tamaño, decidiremos que no queremos que crezca más allá de cierta profundidad, que no queremos más de un número determinado de hojas totales, o que no queremos menos de un determinado cantidad de observaciones por hoja (hay otras, pero son comunes).

(2) Para decisiones relacionadas con la condición, decidiremos que dejaremos de cultivar el árbol si todas las observaciones en una hoja pertenecen a la misma clase (si es un árbol de clasificación), si todos los valores de atributo para las observaciones en una hoja son mismo, o si expandir el nodo actual no mejora la medida de pureza / métrica de costo que estamos usando (nuevamente, hay más, pero estos son comunes).


Con la poda posterior, también hay una serie de técnicas disponibles, muchas de las cuales se enumeran en la wiki para la poda. Probablemente los tres más comunes son la poda reducida de errores, la poda de complejidad de costos y la poda pesimista (los dos primeros se describen en la wiki).

(1) La reducción de errores de poda funciona básicamente considerando la sustitución del subárbol en cada nodo dentro del árbol con una hoja, asignando todas las observaciones en esa hoja recién asignada a la clase mayoritaria (si es un problema de clasificación) o asignándoles la media (si Un problema de regresión). Si el reemplazo de este subárbol con una hoja deja nuestro error / costo general no peor, entonces lo mantenemos, y de lo contrario no lo hacemos. Continuamos iterando sobre todos los nodos hasta que la poda ya no sea útil.

(2) La poda de complejidad de costos funciona al colapsar sucesivamente el nodo que produce el menor aumento por nodo en nuestro error / costo, al tiempo que sopesa la complejidad general (por ejemplo, el tamaño) de nuestro árbol para decidir el mejor árbol podado que minimiza nuestra función de costo-complejidad.

(3) La poda pesimista funciona al agregar efectivamente un término de penalización al error en cada nodo. Este término de penalización a menudo se denomina “corrección de errores”, con la motivación de que queremos intentar estimar conservadoramente el error verdadero en cada nodo.


Entonces, ¿cuál de estos elegimos? Si está construyendo el algoritmo del árbol usted mismo y no le importa un cálculo adicional, creo que es común (y más efectivo) realizar una poda posterior. Esto podría ser especialmente cierto dado que los métodos de poda previa le permitirán lograr los mismos resultados (solo en un orden diferente). En términos de los diferentes métodos de poda posterior, (1) y (2) anteriores generalmente requieren que use un conjunto de capacitación y validación, lo que significa más cómputo. (3) no tiene esta estipulación, por lo que implica menos cómputo. Este artículo discute estas tres técnicas (junto con otra), y básicamente llega a la conclusión de que (1) generalmente funciona mejor, pero no significativamente mejor que (3) para que el cálculo adicional valga la pena.

Como puede suponer, los métodos de poda previa le ahorrarán la preocupación de la computación adicional que aportan algunos de los métodos de poda posterior, y probablemente no lo harán mucho peor (si es que lo hacen) que los métodos de poda posterior. Esto probablemente sea especialmente cierto si optimiza las decisiones de poda previa que toma.

En la práctica, si está utilizando un algoritmo de árbol que alguien más armó, entonces estará restringido a las decisiones que le den. Estoy más familiarizado con la implementación que ofrece sklearn, que solo le da la opción de podar previamente especificando parámetros como profundidad máxima, mín. muestras por hoja, etc.

De las hojas. O, mejor aún, mientras lo estás entrenando. Por lo general, establecerá un parámetro que limite al menos uno de: el número de nodos hoja, la profundidad máxima o el número mínimo de muestras de datos requeridas para un nodo. Dependiendo de la implementación que esté utilizando, es posible que no admita todas estas opciones.

Por lo general, considero que es necesario un número mínimo de muestras por nodo para evitar un ajuste excesivo. La profundidad máxima requerida depende de la complejidad de su problema. El número de nodos hoja está bastante relacionado con la profundidad máxima, por lo que muchas implementaciones solo tendrán uno de los dos como parámetro.

More Interesting

¿Necesito tener grupos similares en una regresión de diferencia en diferencia?

Cómo saber si Deep Learning funcionará mejor para un problema específico, que SVM o bosque aleatorio

¿Quién es el mejor científico de aprendizaje automático del mundo?

¿Ha publicado Factual.com algún trabajo de investigación (o algún asunto técnico importante) sobre las técnicas de aprendizaje automático que utilizan para rastrear y extraer de la web?

¿Cuáles son las herramientas basadas en redes neuronales disponibles ahora para el consumidor?

¿Cómo 'Diagonal BiLSTM' calcula los estados diagonales a la vez y qué es diagonal?

¿Cuál es la ley cero del algoritmo de aprendizaje automático (MLA)?

¿Se puede trabajar en Machine Learning con un doctorado en estadísticas?

¿Hay algún ejemplo en la inferencia bayesiana de que, incluso con infinitos puntos de datos, el efecto de lo anterior no puede ser "eliminado"?

¿El aprendizaje automático es algo que no llegará demasiado lejos si no tiene la formación académica adecuada? Dado que hay tanto en Internet, ¿se puede entender?

¿Qué significa 'clasificación' en la discusión del reconocimiento de patrones?

Cómo descargar el conjunto de datos para el resumen de texto extractivo

¿Se pueden usar los árboles de decisión para encontrar atributos de variables latentes de una muestra?

Cómo aplicar en la práctica PCA a la agrupación de trayectorias

¿Quiénes son los grandes nombres en el campo de investigación de los sistemas de recomendación?