3 puntos por GN⁺ 2026-03-02 | 1 comentarios | Compartir por WhatsApp
  • Una estructura que divide repetidamente el espacio de características para clasificar datos, eligiendo en cada paso la partición con mayor ganancia de información
  • Usa la entropía (Entropy) para medir la pureza (purity) de los datos y, con base en ello, calcula la ganancia de información (Information Gain)
  • El algoritmo ID3 encuentra el punto de partición óptimo calculando la diferencia de entropía entre el nodo padre y los nodos hijos, y expande el árbol de forma recursiva
  • También puede usarse la impureza de Gini (Gini impurity) en lugar de la entropía; ambos métodos suelen dar resultados similares, aunque difieren en eficiencia de cálculo
  • Una partición excesiva provoca sobreajuste (overfitting) e inestabilidad, por lo que se mitiga con poda (pruning) o con Random Forest

Conceptos básicos de los árboles de decisión

  • Los árboles de decisión dividen los datos de arriba hacia abajo y, en cada paso, aplican reglas condicionales para separar los datos en regiones bien diferenciadas
    • Cada partición se determina según una característica (feature) específica y un valor umbral (cutoff value)
    • El objetivo es crear nodos puros donde las clases queden bien separadas en una tarea de clasificación

Definición y propiedades de la entropía (Entropy)

  • La entropía es una medida de la incertidumbre de la información y, para una probabilidad (p_i), se define como (H = -\sum p_i \log_2(p_i))
  • Propiedades principales
    1. Cuando solo un evento tiene probabilidad 1 y el resto 0, (H=0), es decir, no hay incertidumbre
    2. Cuando todos los eventos tienen la misma probabilidad, la entropía alcanza su máximo y representa el estado más impuro
    3. Cuanto más uniformes son las probabilidades, mayor es la entropía
  • Por lo tanto, un nodo puro tiene entropía 0, mientras que un nodo mezclado tiene un valor alto de entropía

Ganancia de información (Information Gain) y algoritmo ID3

  • La ganancia de información se calcula como la diferencia de entropía antes y después de una partición, y representa la eficiencia de la división de los datos
    • Fórmula: (\Delta IG = H_{\text{parent}} - \frac{1}{N}\sum N_{\text{child}} \cdot H_{\text{child}})
  • Pasos del algoritmo ID3
    1. Calcular la entropía de cada característica
    2. Dividir el conjunto de datos con distintos criterios de partición y calcular la ganancia de información
    3. Elegir la partición con la mayor ganancia de información y crear un nodo de decisión
    4. Crear un nodo hoja cuando ya no sea posible seguir dividiendo
    5. Aplicar el proceso de forma recursiva a todos los subconjuntos, deteniéndose si todos los elementos pertenecen a la misma clase
  • Por ejemplo, la condición Diameter ≤ 0.45 fue elegida como la primera partición porque tenía la mayor ganancia de información, 0.574

Impureza de Gini y medición alternativa

  • La impureza de Gini (Gini impurity) es una alternativa a la entropía y otra forma de medir la impureza de la información
    • Al no requerir cálculos logarítmicos, su cómputo es más rápido
    • En conjuntos de datos desbalanceados, la entropía puede ser una opción más cuidadosa
  • Ambos métodos suelen producir resultados similares en términos generales

Problemas de sobreajuste e inestabilidad

  • El algoritmo ID3 sigue realizando particiones para minimizar la entropía, por lo que el árbol puede volverse excesivamente profundo
    • Esto provoca sobreajuste (overfitting) y reduce la capacidad de generalización ante datos nuevos
  • Además, existe el problema de inestabilidad (high variance), donde pequeños cambios en los datos pueden alterar en gran medida la estructura del árbol
    • Ejemplo: incluso al agregar un pequeño ruido gaussiano al 5% de los datos de entrenamiento, puede generarse un árbol completamente distinto
  • Como solución, la poda (pruning) permite limitar la profundidad del árbol, la cantidad de hojas, el número mínimo de muestras, etc.

Extensión hacia Random Forest

  • Para mitigar la inestabilidad de un solo árbol de decisión, se utiliza un enfoque que entrena múltiples árboles con distintas muestras de datos y combina sus predicciones
    • Este enfoque es Random Forest, que ofrece alta estabilidad y buen rendimiento de generalización
  • Esto compensa las desventajas de los árboles de decisión y se considera uno de los algoritmos de machine learning más exitosos hasta la fecha

Conclusión y aprendizaje adicional

  • Los árboles de decisión son modelos fáciles de interpretar, rápidos de entrenar y con preprocesamiento sencillo
  • Sin embargo, para resolver los problemas de sobreajuste e inestabilidad, se necesita poda o técnicas de ensamble
  • El artículo no aborda árboles para regresión, preferencia por cortes en los extremos (end-cut preference), hiperparámetros, etc., y recomienda profundizar con materiales relacionados

1 comentarios

 
GN⁺ 2026-03-02
Comentarios en Hacker News
  • Un arma secreta que me funcionó muy bien al aprender clasificadores fue entrenar primero un buen clasificador lineal
    Luego entrenaba un árbol de decisión usando la salida no umbralizada de ese clasificador lineal como una dimensión adicional de características, y lo envolvía en un sistema de árboles con boosting
    Así, el modelo lineal compensa las debilidades del árbol de decisión, y el árbol se encarga de las partes que al modelo lineal le cuestan
    También se puede considerar la rotación de datos o la normalización de ejes, pero casi nunca fue necesario
    Eso sí, cuando las características son muy dispersas, al árbol le cuesta encontrar puntos de partición

    • Pensándolo bien, este es un enfoque parecido al que también se usa en aprendizaje por refuerzo
      Se agrega cómputo extra al estado original para formar un estado observado y se entrena sobre eso
      Por ejemplo, en el juego Snake, además de las coordenadas de la serpiente, se calculan y usan características derivadas como la cantidad de rutas de escape
    • El talón de Aquiles de los árboles de decisión termina siendo la ingeniería de características
      Si no limpias los datos y diseñas bien las características, los resultados son mucho peores que con modelos de caja negra como las redes neuronales
      Irónicamente, las redes neuronales encuentran por sí solas esas características latentes, aunque es difícil interpretar por qué funcionan así
    • Hay varias variantes de árboles según el objetivo que se busque
      Oblique Decision Tree, Model Tree (M5), Logistic Model Tree (LMT) y Hierarchical Mixture of Experts (HME) son algunos ejemplos
    • Me da curiosidad qué significa exactamente la expresión “las regiones de igual etiqueta tienen una estructura particionada
    • Esta idea también se parece al núcleo del paper de IRM escrito por Arjovsky, Bottou y otros
  • Cuando trabajaba en CERN hacia 2010, el Boosted Decision Tree era el clasificador más popular
    Era por el equilibrio entre explicabilidad y capacidad de representación, y en ese momento culturalmente había resistencia a usar redes neuronales en análisis de física
    Ahora los tiempos han cambiado mucho

    • Ese cambio me preocupa un poco
      En física, más que simplemente ajustar bien una curva, importa entender el mecanismo causal
      Es como el sistema de epiciclos de Ptolomeo, que ajustaba mejor el movimiento celeste pero no explicaba la causa
    • Yo también vengo de física teórica, y al usar árboles de decisión en otros campos vi que la “explicabilidad” está algo sobrevalorada
      Apenas aumenta un poco la profundidad, se vuelve una jungla casi imposible de interpretar
      Con las redes neuronales pasa algo parecido: puedes seguir las operaciones internas, pero al final no sabes por qué tomaron esa decisión
    • Me pregunto si Boosted Decision Tree y Boosted Random Forest son lo mismo
  • En el mismo sitio también hay una explicación de Random Forestmlu-explain/random-forest

  • Dato curioso: una red neuronal de 1 bit (single-bit neural network) es, en esencia, un árbol de decisión
    En teoría, la mayoría de las redes neuronales se pueden “compilar” como una cadena de if-else, pero todavía no está claro cuándo eso funciona bien

    • Leí el paper “las redes neuronales son árboles de decisión” (arXiv:2210.05189), pero en la práctica el árbol se vuelve enorme
      Parece más una extensión del concepto que un mapeo directo
      Así que me gustaría una explicación más clara de en qué sentido exacto se dice eso
    • Me pregunto si existe algún software o paper que haga de verdad esa conversión. Suena como un proyecto entretenido para un fin de semana
  • La mayor ventaja de los árboles de decisión es la velocidad
    En un entorno de baja latencia, intenté reemplazar un clasificador basado en árboles por una red neuronal pequeña, pero aunque la red tenía un poco más de precisión, la latencia de inferencia era más de 100 veces mayor

    • Además, un árbol de decisión individual es fácil de portar directamente a un dispositivo edge
      En cambio, los árboles con boosting o bagging son complejos, y otros algoritmos clásicos de ML también tienen peor portabilidad
  • En algún libro de ML (probablemente ESL) describían así a los árboles de decisión
    “Son interpretables, rápidos, funcionan bien con distintos tipos de datos, son poco sensibles al escalado y tienen pocos parámetros de ajuste, pero... no funcionan bien
    Aun así, bagging o boosting pueden compensar esa desventaja, aunque en el proceso se pierden parte de las ventajas originales

  • Me gustan muchísimo los árboles de decisión. Son mi algoritmo clásico de ML favorito
    Hice una implementación paralela puramente funcional en GNU Guileenlace al código
    Pero Guile no tiene algo como NumPy o DataFrame, así que la representación de datos es ineficiente

    • Me pregunto en qué son mejores NumPy o DataFrame que Guile
      Guile es adecuado para manipular árboles, así que se siente natural para implementar árboles de decisión
      Eso sí, sería más eficiente si se compilara a código máquina
      Por cierto, también vale la pena mirar Lush(https://lush.sourceforge.net/) y aiscm(https://wedesoft.github.io/aiscm/)
  • La toma de decisiones ambigua de un experto a menudo también se puede modelar con un árbol de decisión simple o una cadena de decisión
    El propio experto cree que su razonamiento es complejo, pero en realidad un árbol sencillo muchas veces lo explica mejor
    Antes la regresión o el clustering basado en distancia parecían más sofisticados, pero los árboles son mucho más efectivos
    Esto se explica en detalle en el capítulo 7 del Oxford Handbook of Expertise

    • En una visualización que vi hace tiempo, las decisiones se representaban como una partición del espacio en un plano 2D
      Al final, un árbol de decisión divide el espacio de posibilidades como un kD-Tree y asigna una acción a cada región
      La sutileza del juicio experto viene de lo finas que son las fronteras, pero el árbol también ofrece una aproximación bastante buena
  • El sitio era interesante y la presentación estaba buena
    Pero algunos textos tenían poco contraste de color y eran difíciles de leer

    • Pienso lo mismo. Firefox Reader View ayuda muchísimo
      La accesibilidad no es solo para personas con discapacidad, sino un elemento básico para mejorar la legibilidad
  • Hoy en día, en la era del deep learning, los árboles de decisión están siendo subestimados
    Pero siguen siendo interpretables, rápidos y suficientemente prácticos
    Yo armé un sistema de puntaje para análisis de sitios web basado en árboles,
    evaluando condiciones como “¿tiene metadescripción?”, “¿carga en menos de 3 segundos?”, “¿es compatible con móviles?”
    El usuario puede entender de inmediato por qué recibió ese puntaje
    Explicar por qué una red neuronal dio 73 puntos es imposible, pero con un árbol eso es fácil