Quando si vorrebbe usare AdaBoost?


14

Come ho sentito parlare del classificatore AdaBoost più volte menzionato al lavoro, volevo avere un'idea migliore di come funziona e quando si potrebbe desiderare di usarlo. Sono andato avanti e ho letto una serie di articoli e tutorial che ho trovato su Google, ma ci sono aspetti del classificatore che non riesco ancora a capire:

  1. La maggior parte dei tutorial che ho visto parlano di AdaBoost come trovare la migliore combinazione ponderata di molti classificatori. Questo ha senso per me. Ciò che non ha senso sono le implementazioni (cioè MALLET) in cui AdaBoost sembra accettare solo uno studente debole. Che senso ha questo? Se ad AdaBoost viene fornito un solo classificatore, non dovrebbe semplicemente restituire lo stesso classificatore con un peso di 1? Come produce nuovi classificatori dal primo classificatore?

  2. Quando si vorrebbe effettivamente utilizzare AdaBoost? Ho letto che dovrebbe essere uno dei migliori classificatori out-of-the-box, ma quando provo a potenziare un classificatore MaxEnt stavo ottenendo punteggi f del 70% + con, AdaBoost lo uccide e mi dà f- decine di qualcosa come il 15% con un richiamo molto elevato e una precisione molto bassa. Quindi ora sono confuso. Quando mai vorrei usare AdaBoost? Sto cercando una risposta più intuitiva piuttosto che strettamente statistica, se possibile.

Risposte:


11

Adaboost può utilizzare più istanze dello stesso classificatore con parametri diversi. Pertanto, un classificatore precedentemente lineare può essere combinato in classificatori non lineari. Oppure, come piace alla gente di AdaBoost, più studenti deboli possono diventare uno studente forte. Una bella foto può essere trovata qui , in fondo.

Fondamentalmente, va come con qualsiasi altro algoritmo di apprendimento: su alcuni set di dati funziona, su altri no. Ci sono sicuramente set di dati là fuori, dove eccelle. E forse non hai ancora scelto lo studente debole giusto. Hai provato la regressione logistica? Hai visualizzato come si evolvono i confini delle decisioni durante l'aggiunta di studenti? Forse puoi dire cosa non va.


(+1). Nota aggiuntiva: anche se i parametri degli studenti deboli non differiscono, il comportamento (cioè ciò che prevedono) cambia quando cambia la struttura del set di dati (come fatto nel potenziamento).
Steffen,

MaxEnt è la regressione logistica. Visualizzare come si evolvono i confini delle decisioni sarebbe davvero utile. Come si può fare per farlo? Inoltre, non capisco ancora come funziona AdaBoost quando viene fornito solo un set di funzionalità e un tipo di classificatore (come in MALLET). Per me, questo sembra completamente controintuitivo.
YuliaPro

Basta tracciare il set di dati. Inoltre, traccia una griglia in cui scegli un colore per ogni punto come viene classificato dal tuo sistema. Funziona bene solo in 2D, immagino. Potresti ancora tracciare gli assi più importanti o qualcosa del genere. Se hai solo un set di funzionalità e un classificatore, si riduce a un solo classificatore. Avevo l'impressione che la massima entropia fosse un paradigma e non un classificatore concreto. Comunque.
Bayerj,
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.