Alberi decisionali vs. Reti neurali

20

Sto implementando una struttura di apprendimento automatico per cercare di prevedere la frode su sistemi finanziari come banche, ecc ... Ciò significa che ci sono molti dati diversi che possono essere utilizzati per addestrare il modello ad es. numero della carta, nome del titolare della carta, importo, paese, ecc ...

Ho problemi a decidere quale sia la struttura migliore per questo problema. Ho una certa esperienza con gli alberi decisionali ma attualmente ho iniziato a chiedermi se una rete neurale sarebbe stata migliore per questo tipo di problema. Inoltre, se qualsiasi altro metodo sarebbe il migliore, non esitare a illuminarmi.

Quali sono i pro e i contro di ciascuna struttura e quale struttura sarebbe la migliore per questo problema?

Inoltre non sono sicuro di questo fatto, ma penso che gli alberi decisionali abbiano un grande vantaggio sulle reti neurali in termini di velocità di esecuzione. Questo è importante perché la velocità è anche un fattore chiave in questo progetto.

    
posta Topo 17.07.2012 - 23:10
fonte

1 risposta

22

Ci sono molte differenze tra questi due, ma in termini pratici, ci sono tre cose principali da considerare: velocità, interpretabilità e accuratezza.

Alberi decisionali

  • Dovrebbe essere più veloce una volta addestrato (anche se entrambi gli algoritmi possono allenarsi lentamente a seconda dell'algoritmo esatto e della quantità / dimensionalità dei dati). Questo perché un albero decisionale inerente "getta via" le caratteristiche di input che non trova utili, mentre una rete neurale le userà tutte a meno che non si faccia qualche selezione di funzionalità come fase di pre-elaborazione.
  • Se è importante capire cosa sta facendo il modello, gli alberi sono molto interpretabili.
  • Solo le funzioni del modello che sono suddivisioni assi parallele dei dati, il che potrebbe non essere il caso.
  • Probabilmente vuoi essere sicuro di sfoltire l'albero per evitare un adattamento eccessivo.

Reti neurali

  • Più lento (sia per l'allenamento che per la classificazione) e meno interpretabile.
  • Se i tuoi dati arrivano in uno stream, puoi eseguire aggiornamenti incrementali con discesa del gradiente stocastico (diversamente dagli alberi decisionali, che utilizzano algoritmi di apprendimento batch intrinsecamente).
  • Può modellare più funzioni arbitrarie (interazioni non lineari, ecc.) e quindi potrebbe essere più preciso, a condizione che ci siano abbastanza dati di addestramento. Ma può anche essere soggetto a un eccessivo adattamento.

Potresti provare a implementare entrambi e ad eseguire alcuni esperimenti sui tuoi dati per vedere quale è il migliore, e confrontare i tempi di esecuzione. Oppure puoi utilizzare qualcosa come la Weka GUI illuminata con un campione rappresentativo dei tuoi dati per testare l'unità entrambi i metodi.

Potrebbe anche essere che l'uso di algoritmi di "insaccamento" o "potenziamento" con alberi decisionali migliorerà la precisione mantenendo una certa semplicità e velocità. Ma in breve, se la velocità e l'interpretabilità sono davvero importanti, allora gli alberi sono probabilmente da dove cominciare. Altrimenti, dipende e avrai qualche esplorazione empirica da fare.

    
risposta data 18.07.2012 - 01:12
fonte

Leggi altre domande sui tag