Qual è l'algoritmo di regressione graduale in avanti?


14

Forse è solo che sono stanco, ma ho difficoltà a capire l'algoritmo Forward Stagewise Regression. Da "Elementi di apprendimento statistico" pagina 60:

La regressione forward-stagewise (FS) è ancora più limitata della regressione forward-stepwise. Inizia come una regressione in avanti, con un'intercettazione uguale a [media di] y, e predittori centrati con coefficienti inizialmente inizialmente tutti 0.

Ad ogni passo l'algoritmo identifica la variabile più correlata con il residuo corrente. Quindi calcola il coefficiente di regressione lineare semplice del residuo su questa variabile scelta e quindi lo aggiunge al coefficiente corrente per quella variabile. Questo continua fino a quando nessuna delle variabili ha correlazione con i residui, ovvero i minimi quadrati quando n> p.

Quindi, questo è l'algoritmo ?:

b[1]=mean(y)
b[2..n]=0
r=(y-X*b)
index, maxCorr = max(transpose(r)*X)
while(abs(maxCorr) > someThreshold)
  b[index]=b[index]+regress(r,X[1..n][index])
  r=(y-X*b)
  index, maxCorr = max(transpose(r)*X)

Dove b è un vettore di colonna dei coefficienti, X è una matrice di input e y è un vettore di colonna di output. Vale a dire y = X * b + errore.

Chiedermi perché questo algoritmo mi dà solo pochi coefficienti diversi da zero sul set di dati su cui lo sto testando (con soglia = .0001) e la precisione della previsione non è affatto buona.

Risposte:


5

Gli autori fanno un pessimo lavoro nel spiegare l'algoritmo nel loro libro. Se osservi le equazioni 1.6 e 1.7 nel loro documento , diventa più chiaro. Il documento ha una formulazione leggermente diversa (costruisce il residuo piuttosto che il vettore del coefficiente), ma il punto chiave è che raggiunge i minimi quadrati adattandosi molto a piccoli passi (ecco perché il libro menziona l'algoritmo che può prendere "molti altri di p passi "per finire). Puoi sostituire "regress (...)" con un piccolo numero, oppure puoi moltiplicarlo per qualcosa come 0,05. Giocaci e vedi cosa funziona.

Inoltre, la tua soglia sembra piccola. r '* X fornirà numeri proporzionali ma molto più grandi delle effettive correlazioni (ad es. per i dati sul diabete nel documento le correlazioni sono ~ 70-900).

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.