A mi modo de ver, es una serie de if-else. ¿Por qué no uso if-else en lugar de usar un árbol de decisión?
Tienes toda la razón. Un árbol de decisión no es más que una serie de declaraciones if-else. Sin embargo, es la forma en que interpretamos estas declaraciones como un árbol lo que nos permite construir estas reglas automáticamente ... Es decir, dar un conjunto de ejemplos de entrada(X1,y1) , . . . , (Xnorte,ynorte)... cuál es el mejor conjunto de reglas que describe qué valor y ha dado una nueva entrada X? ID3 y similares nos permiten crear automáticamente estas reglas. No se trata realmente del árbol una vez construido, se trata de cómo lo creamos.
Aparte de eso, casi nunca se usa un árbol de decisión solo, la razón es precisamente lo que usted dice: es un modelo bastante simplista que carece de expresividad. Sin embargo, tiene una gran ventaja sobre otros modelos: se puede calcular un solo árbol de decisión bastante rápido. Eso significa que podemos encontrar algoritmos que entrenan muchos árboles de decisión (impulso, también conocido como AdaBoost y GradientBoosting) en grandes conjuntos de datos. Esta colección (generalmente más de 500) de estos modelos simplistas (llamados bosques) puede expresar formas mucho más complicadas.
También podría imaginarlo así: dada una función 'agradable' (es decir, continua) pero complicada f:[a,b]→Rpodríamos intentar aproximar esta función usando líneas. Si la función es complicada (comosin(x)más o menos) entonces producimos un gran error. Sin embargo, podríamos combinar líneas en la forma en que dividimos el intervalo[a,b] en partes más pequeñas a=a0<a1<...<aM=b y en cada ai,ai+1 tratamos de aproximarnos f|(ai,ai+1) (es decir, frestringido a este intervalo) por una línea. Por matemática básica (análisis) podemos aproximar la función arbitrariamente cerca (es decir, cometer un error arbitrariamente pequeño) si tomamos suficientes líneas. Por lo tanto, creamos un modelo complicado pero preciso a partir de modelos muy simples. Esa es exactamente la misma idea que (por ejemplo) utiliza GradientBoosting: construye un bosque a partir de árboles de decisión única muy 'estúpidos'.