Jaki jest algorytm regresji regresji naprzód?

14

Może po prostu jestem zmęczony, ale mam problem ze zrozumieniem algorytmu Forward Stagewise Regression. Ze strony „Elementy uczenia statystycznego” na stronie 60:

Regresja do przodu i do tyłu jest jeszcze bardziej ograniczona niż regresja do przodu i do przodu. Zaczyna się jak regresja krokowa do przodu, z przecięciem równym [średnia] yi wyśrodkowanymi predyktorami ze współczynnikami początkowo wszystkie 0.

Na każdym etapie algorytm identyfikuje zmienną najbardziej skorelowaną z bieżącą wartością resztkową. Następnie oblicza prosty współczynnik regresji liniowej reszty na tej wybranej zmiennej, a następnie dodaje go do bieżącego współczynnika dla tej zmiennej. Jest to kontynuowane, dopóki żadna ze zmiennych nie będzie korelowana z resztami - tj. Najmniejszych kwadratów, gdy N> p.

Czy to algorytm ?:

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)

Gdzie b jest wektorem kolumnowym współczynników, X jest macierzą danych wejściowych, a y jest wektorem kolumnowym danych wyjściowych. Tj = błąd X * b +.

Pytanie, ponieważ ten algorytm daje mi tylko kilka niezerowych współczynników dla zestawu danych, na którym go testuję (z progiem = 0,0001), a dokładność prognozowania wcale nie jest bardzo dobra.

ektrules
źródło

Odpowiedzi:

5

Autorzy nie potrafią wytłumaczyć algorytmu w swojej książce. Jeśli spojrzysz na równania 1.6 i 1.7 w ich pracy , staje się ono wyraźniejsze. Artykuł ma nieco inną formułę (buduje wektor resztkowy niż wektor współczynnika), ale kluczową kwestią jest to, że osiąga dopasowanie co najmniej kwadratów w bardzo małych krokach (dlatego książka wspomina, że ​​algorytm może przyjąć „o wiele więcej” niż p kroków ", aby zakończyć). Możesz albo zastąpić „regres (...)” jakąś małą liczbą, albo możesz pomnożyć ją przez około 0,05. Baw się nim i zobacz, co działa.

Ponadto twój próg wydaje się mały. r '* X da liczby proporcjonalne do, ale znacznie większe niż rzeczywiste korelacje (np. dla danych dotyczących cukrzycy w artykule korelacje wynoszą ~ 70-900).

Kevin
źródło