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.