Який алгоритм прямого ступінчатого регресії?


14

Можливо, я просто втомився, але у мене виникають проблеми, намагаючись зрозуміти алгоритм Forward Stagewise Regression. На сторінці «Елементи статистичного навчання» на сторінці 60:

Регресія вперед-ступінь (FS) ще більш обмежена, ніж регресія вперед-ступінчасто. Він починається як регресія вперед, поступово, з перехопленням, рівним [середньому] y, і орієнтованими передбачувачами з коефіцієнтами спочатку всі 0.

На кожному кроці алгоритм ідентифікує змінну, найбільш корельовану з поточним залишком. Потім він обчислює простий коефіцієнт лінійної регресії залишку на цій вибраній змінній, а потім додає її до поточного коефіцієнта цієї змінної. Це продовжується до тих пір, поки жодна зі змінних не має кореляції із залишками, тобто найменшими квадратами fi t, коли N> p.

Отже, це алгоритм ?:

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)

Де b - вектор стовпців коефіцієнтів, X - матриця входів, а y - стовпець-вектор виходів. Тобто y = X * b + помилка.

Запитуючи, тому що цей алгоритм дає мені лише кілька ненульових коефіцієнтів на наборі даних, на яких я тестую його (з порогом = .0001), і точність прогнозування не дуже хороша.

Відповіді:


5

Вони автори роблять погану роботу з пояснення алгоритму у своїй книзі. Якщо поглянути на рівняння 1.6 та 1.7 у їхньому документі , це стане зрозумілішим. У статті є дещо інша формулювання (вона будує залишковий, а не векторний коефіцієнт), але ключовим моментом є те, що він досягає мінімум квадратів, що підходять дуже маленькими кроками (саме тому книга згадує, що алгоритм може приймати "ще багато ніж p кроки "для закінчення). Ви можете або замінити "регрес (...)" на якесь невелике число, або можете помножити його на щось на зразок 0,05. Пограйте з ним і подивіться, що працює.

Також ваш поріг здається малим. r '* X дасть числа, пропорційні, але набагато більші, ніж фактичні кореляції (наприклад, для даних про діабет у статті кореляції становлять ~ 70-900).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.