Alberi decisionali vs. reti neurali


20

Sto implementando una struttura di apprendimento automatico per tentare di prevedere frodi su sistemi finanziari come le 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 difficoltà a decidere quale struttura è la migliore per questo problema. Ho una certa esperienza con gli alberi delle decisioni, ma attualmente ho iniziato a chiedermi se una rete neurale sarebbe meglio per questo tipo di problema. Anche se qualsiasi altro metodo sarebbe il migliore, non esitate 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 rispetto alle reti neurali in termini di velocità di esecuzione. Questo è importante perché la velocità è anche un fattore chiave in questo progetto.

Risposte:


24

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

Alberi decisionali

  • Una volta addestrato dovrebbe essere più veloce (sebbene entrambi gli algoritmi possano allenarsi lentamente a seconda dell'esatto algoritmo e della quantità / dimensionalità dei dati). Questo perché un albero decisionale intrinsecamente "elimina" le funzionalità di input che non trova utili, mentre una rete neurale le utilizzerà tutte a meno che non si esegua una selezione delle 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, che potrebbero non essere il caso.
  • Probabilmente vuoi essere sicuro di potare l'albero per evitare un eccesso di adattamento.

Reti neurali

  • Più lento (sia per l'allenamento che per la classificazione) e meno interpretabile.
  • Se i dati arrivano in un flusso, è possibile eseguire aggiornamenti incrementali con discesa gradiente stocastica (a differenza degli alberi decisionali, che utilizzano intrinsecamente algoritmi di apprendimento batch).
  • Può modellare funzioni più arbitrarie (interazioni non lineari, ecc.) E quindi potrebbe essere più preciso, a condizione che vi siano sufficienti dati di addestramento. Ma può anche essere soggetto a sovra-adattamento.

Potresti provare a implementare entrambi ed eseguire alcuni esperimenti sui tuoi dati per vedere quale è meglio e confrontare i tempi di esecuzione. In alternativa, è possibile utilizzare qualcosa come la GUI di Weka scattata con un campione rappresentativo dei dati per testare entrambi i metodi.

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


Sembra che tu ne sappia un po ', hai qualche esperienza con le reti bayesiane o altri metodi di apprendimento automatico che potrebbero aiutare con questo problema?
Topo,

1
Non ho perso molto tempo con reti bayesiane complete, per lo più ingenui Bayes e modelli di argomenti. Non ho mai lavorato su problemi di rilevamento delle frodi, ma Bayes ingenuo o la regressione logistica potrebbero essere approcci ragionevoli anche qui.
burr
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.