Per come la vedo io, è una serie di if-else. Perché non uso semplicemente if-else invece di usare un albero decisionale?
Hai assolutamente ragione. Un albero decisionale non è altro che una serie di istruzioni if-else. Tuttavia, è il modo in cui interpretiamo queste affermazioni come un albero che ci consente di creare automaticamente queste regole ... Ad esempio, abbiamo fornito un set di esempi di input ... qual è il miglior set di regole che descrive quale valore ha dato un nuovo input ? ID3 e simili ci consentono di creare automaticamente queste regole. Non si tratta davvero dell'albero una volta costruito, si tratta di come l'abbiamo creato.(x1,y1),...,(xN,yN)yx
A parte questo, quasi mai si usa un albero decisionale da solo, il motivo è proprio quello che dici: è un modello piuttosto semplicistico che manca di espressività. Tuttavia, ha un grande vantaggio rispetto ad altri modelli: si può calcolare un singolo albero decisionale abbastanza velocemente. Ciò significa che possiamo inventare algoritmi che addestrano molti molti alberi decisionali (boosting, ovvero AdaBoost e GradientBoosting) su grandi set di dati. Questa raccolta di (di solito più di 500) di questi modelli semplicistici (chiamati foresta) può quindi esprimere forme molto più complicate.
Potresti anche immaginarlo in questo modo: data una funzione 'bella' (cioè continua) ma complicata potremmo provare ad approssimare questa funzione usando le linee. Se la funzione è complicata (come o giù di lì) allora produciamo un grosso errore. Tuttavia, potremmo combinare le linee nel modo in cui dividiamo l'intervallo in parti più piccole e su ciascuna proviamo ad approssimare (ovverof:[a,b]→Rsin(x)[a,b]a=a0<a1<...<aM=bai,ai+1f|(ai,ai+1)flimitato a questo intervallo) da una riga. Con la matematica di base (analisi) possiamo quindi approssimare la funzione arbitrariamente chiusa (ovvero fare un errore arbitrariamente piccolo) se prendiamo abbastanza righe. Quindi, abbiamo costruito un modello complicato ma preciso da quelli molto semplici. Questa è esattamente la stessa idea che (ad esempio) usa GradientBoosting: costruisce una foresta da alberi di decisione molto "stupidi".