Promuovere un modello di regressione logistica


11

Adaboost è un metodo di ensemble che combina molti studenti deboli per formare uno forte. Tutti gli esempi di adaboost che ho letto usano tronchi / alberi decisionali come discenti deboli. Posso usare diversi studenti deboli in adaboost? Ad esempio, come implementare adaboost (generalmente potenziando) per potenziare un modello di regressione logistica?

Una delle principali differenze tra gli alberi di classificazione e la regressione logistica è che le precedenti classi di output (-1,1) mentre la regressione logistica produce probi. Un'idea è quella di scegliere la migliore funzione X da una serie di funzionalità e raccogliere una soglia (0,5?) Per convertire i probi in classi e quindi utilizzare una regressione logistica ponderata per trovare la funzione successiva ecc.

Ma immagino che esista un algoritmo generale per stimolare diversi discenti deboli diversi dai ceppi di decisione che generano probabilità. Credevo che Logitboost fosse la risposta alla mia domanda, ma ho provato a leggere il documento "Additive Logistic Regression" e mi sono bloccato nel mezzo.

Risposte:


7

Non confondere la gestione dei predittori (tramite apprendenti di base, ad es. Ceppi) e la gestione della funzione di perdita nell'aumento. Sebbene AdaBoost possa essere considerato come la ricerca di combinazioni di studenti di base per ridurre al minimo l'errore di classificazione errata, il documento "Regressione logistica additiva" che citi mostra che può anche essere formulato per ridurre al minimo una funzione di perdita esponenziale. Questa intuizione ha aperto l'approccio di potenziamento a una vasta classe di problemi di apprendimento automatico che minimizzano le funzioni di perdita differenziabili, attraverso l' incremento graduale . I residui che si adattano ad ogni passo sono pseudo-residui calcolati dal gradiente della funzione di perdita. Anche se i predittori sono modellati come ceppi binari, l'output del modello non deve quindi essere una scelta binaria.

Come afferma un'altra risposta, i discenti di base lineare potrebbero non funzionare per il potenziamento, ma i discenti di base lineare non sono richiesti per la "regressione potenziata" in senso standard o logistico. Ceppi decisamente non lineari possono essere combinati come discenti di base lenti per ridurre al minimo le funzioni di perdita appropriate. Si chiama ancora "regressione potenziata" anche se è lungi dall'essere un modello di regressione standard lineare nei coefficienti dei predittori. La funzione di perdita può essere funzionalmente uguale per i modelli lineari e i modelli "regressione potenziata" con ceppi o alberi come predittori. Il capitolo 8 dell'ISLR lo chiarisce abbastanza bene.

Quindi, se si desidera una regressione logistica equivalente a una regressione potenziata, concentrarsi sulla funzione di perdita piuttosto che sugli apprendenti di base. Questo è ciò che l'approccio LogitBoost nel documento citato fa: minimizzare una perdita di log piuttosto che la perdita esponenziale implicita in adaboost. La pagina di Wikipedia AdaBoost descrive questa differenza.

Molti partecipanti a questo sito sostengono che una previsione basata su probabilità di registro / probabilità è altamente preferibile a una previsione di classificazione sì / no rigorosa, poiché la prima consente più generalmente compromessi tra i costi aggiuntivi delle previsioni falso positivo e falso negativo . Come indica la risposta alla domanda correlata , è possibile ottenere le probabilità stimate dal classificatore avanzato derivato da AdaBoost, ma LogitBoost potrebbe fornire prestazioni migliori.

Le implementazioni del boost gradiente per la classificazione possono fornire informazioni sulle probabilità sottostanti. Ad esempio, questa pagina sull'aumento del gradiente mostra come il sklearncodice consente di scegliere tra la perdita di devianza per la regressione logistica e la perdita esponenziale per AdaBoost e documenta le funzioni per prevedere le probabilità dal modello con gradiente.


Grazie mille per la tua risposta. Se lo capisco correttamente al fine di ottenere la funzionalità della regressione logistica nel contesto del potenziamento, tutto quello che devo fare è utilizzare l'algoritmo di aumento gradiente con la funzione di perdita logistica e alberi di classificazione degli studenti deboli? Ma gli alberi di classificazione generano {-1,1} mentre la regressione logistica che genera probabilità. Inoltre gli alberi di classificazione cercano di minimizzare l'indice gini invece della perdita logistica. Mi manca qualcosa di fondamentale qui. Dove mettere la perdita logistica? Come emettere probi dal modello?
gnikol,

Capisco il concetto in cui y è continuo perché gli alberi di regressione minimizzano il mse che è la stessa funzione di perdita con regressione lineare. Quindi ho adattato ripetutamente un albero di regressione ai residui. Ma nel contesto della classificazione, gli alberi di classificazione minimizzano l'indice gini o qualcosa di simile. In che modo ciò è collegato alla regressione logistica o alla funzione di perdita della regressione logistica?
gnikol,

@gnikol Ho rivisto la mia risposta in modo che spero possa renderlo più chiaro sia a te che agli altri lettori. I residui che si adattano all'aumento del gradiente sono pseudo-residui calcolati dal gradiente della funzione di perdita; la scelta della funzione di perdita è ciò che distingue AdaBoost da LogitBoost. Le probabilità possono essere ottenute dallo studente forte in ogni caso; Ho fornito un collegamento a un esempio di implementazione nell'ultimo paragrafo.
EdM

5

In effetti abbiamo una domanda molto simile qui sul caso di regressione. E abbiamo avuto un'ottima risposta di @Matthew Drury

Aumento gradiente per la regressione lineare: perché non funziona?

Il modello lineare (come la regressione logistica) non è buono per aumentare. Il motivo è che se si sommano due modelli lineari, il risultato è un altro modello lineare. D'altra parte, aggiungendo due ceppi o alberi di decisione, si avrà un modello più complicato e interessante (non più un albero).

I dettagli sono disponibili in questo post. In questo link ho scoperto perché l'aggiunta di due modelli lineari non è interessante. E sto mostrando l'effetto di aumentare l'iterazione del moncone decisionale mediante iterazione.

Come funziona lo studente di base lineare nel potenziamento? E come funziona nella libreria xgboost?

Si noti che l'albero decisionale / ceppo non è un "modello lineare" simile alla regressione logistica.

Leggi questo post per i dettagli

Un moncone di decisione è un modello lineare?

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.