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


9

So implementare la funzione dell'obiettivo lineare e i boost lineari in XGBoost. La mia domanda concreta è: quando l'algoritmo si adatta al residuo (o al gradiente negativo) sta usando una caratteristica ad ogni passo (modello univariato) o tutte le caratteristiche (modello multivariato)?

Qualsiasi riferimento alla documentazione relativa ai boost lineari in XGBoost sarà apprezzato.

EDIT: i boost lineari possono essere implementati in XGBoost impostando il parametro 'booster' su 'gblinear'. Vedi: http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3885826/ per informazioni utili sul potenziamento lineare. Si noti che non sto parlando della funzione oggettiva (che può anche essere lineare), ma dei boost stessi.

Grazie!


1
Non so come sia implementato, ma non vedo alcun motivo per cui dovrebbe prendere in considerazione solo una caratteristica alla volta
Alexey Grigorev

@AlexeyGrigorev molto probabilmente richiede molte funzionalità alla volta, ma come vengono selezionate queste funzionalità? Qualsiasi documento sul processo specifico per il potenziamento lineare sarebbe molto chiaro.
Escachator,

Risposte:


17

Risposta breve alla tua domanda:

quando l'algoritmo si adatta al residuo (o al gradiente negativo) sta usando una caratteristica ad ogni passo (es. modello univariato) o tutte le caratteristiche (modello multivariato)?

L'algoritmo utilizza una funzionalità o tutte le funzionalità dipendono dalla configurazione. Nella mia lunga risposta elencata di seguito, in entrambi gli esempi di discenti decisionali e di studenti lineari, usano tutte le funzionalità, ma se vuoi, puoi anche inserire un sottoinsieme di funzionalità. Le colonne (caratteristiche) di campionamento vengono visualizzate come riduzione della varianza del modello o aumento della "robustezza" del modello, soprattutto se si dispone di un numero elevato di funzioni.

In xgboost, per chi apprende la base degli alberi, puoi impostare le colsample_bytreefunzioni di campionamento per adattarle a ciascuna iterazione. Per lo studente di base lineare, non ci sono tali opzioni, quindi dovrebbe adattarsi a tutte le funzionalità. Inoltre, non troppe persone usano uno studente lineare in xgboost o un aumento gradiente in generale.


Risposta lunga per studenti lineari deboli per migliorare:

Nella maggior parte dei casi, non possiamo usare uno studente lineare come uno studente di base. Il motivo è semplice: l'aggiunta di più modelli lineari insieme sarà comunque un modello lineare.

Nel potenziare il nostro modello è una somma di studenti di base:

f(X)=Σm=1MBm(X)

MBmmth

2B1=β0+β1XB2=θ0+θ1X

f(X)=Σm=12Bm(X)=β0+β1X+θ0+θ1X=(β0+θ0)+(β1+θ1)X

che è un semplice modello lineare! In altre parole, il modello di ensemble ha la "stessa potenza" con lo studente di base!

XTXβ=XTy


Pertanto, le persone vorrebbero utilizzare altri modelli oltre al modello lineare come studente di base. L'albero è una buona opzione, poiché l'aggiunta di due alberi non è uguale a un albero. Lo dimostrerò con un semplice caso: il moncone decisionale, che è un albero con solo 1 divisione.

f(X,y)=X2+y2

inserisci qui la descrizione dell'immagine

Ora controlla le prime quattro iterazioni.

inserisci qui la descrizione dell'immagine

Nota, diverso dallo studente lineare, il modello in 4a iterazione non può essere ottenuto con una iterazione (un moncone di decisione singola) con altri parametri.


Finora, ho spiegato, perché le persone non usano lo studente lineare come studente di base. Tuttavia, nulla impedisce alle persone di farlo. Se utilizziamo il modello lineare come studente di base e limitiamo il numero di iterazioni, è uguale a risolvere un sistema lineare, ma limitiamo il numero di iterazioni durante il processo di risoluzione.

Lo stesso esempio, ma nella trama 3d, la curva rossa sono i dati e il piano verde è la misura finale. Si può facilmente vedere, il modello finale è un modello lineare ed z=mean(data$label)è parallelo al piano x, y. (Puoi pensare perché? Questo perché i nostri dati sono "simmetrici", quindi qualsiasi inclinazione del piano aumenterà la perdita). Ora, controlla cosa è successo nelle prime 4 iterazioni: il modello montato sale lentamente al valore ottimale (media).

inserisci qui la descrizione dell'immagine


Conclusione finale, lo studente lineare non è ampiamente usato, ma nulla impedisce alle persone di usarlo o implementarlo in una libreria R. Inoltre, è possibile utilizzarlo e limitare il numero di iterazioni per regolarizzare il modello.

Post correlato:

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

Un moncone di decisione è un modello lineare?


1
Direi che la combinazione di n alberi è un albero, non importa quanto sia grande n!
Metariat

@Metariat NO !, la combinazione di alberi NON è un albero !. per l'albero, vedrai la forma a "T" sulla divisione. Ma il moncone potenziato vedrai la forma "#". cioè, la divisione attraverserà altre divisioni!
Haitao Du

Puoi fare un esempio di n alberi? Ti darò un albero equivalente!
Metariat

@Metariat mi dispiace non ho tempo per ora. Ma sono sicuro che il potenziamento del moncone decisionale non può essere facilmente generato da un albero decisionale. Tornerò a questa domanda quando avrò tempo.
Haitao Du

1
Concordo sul fatto che quella combinazione di n alberi sia ancora un albero, ma questo albero sarà significativamente più grande. Nel peggiore dei casi il numero di foglie è uguale al prodotto del numero di foglie in tutti gli alberi di input, quindi la complessità di tale albero è impraticabile. D'altra parte in caso di funzioni lineari la complessità è esattamente la stessa.
Tomek Tarczynski,
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.