Какой алгоритм прямой поэтапной регрессии?


14

Может быть, я просто устал, но у меня возникли проблемы при попытке понять алгоритм прямой поэтапной регрессии. Из раздела «Элементы статистического обучения», стр. 60:

Прямая стадия регрессии (FS) еще более ограничена, чем прямая пошаговая регрессия. Он начинается как пошаговая регрессия вперед, с перехватом, равным [среднее значение] y, и центрированными предикторами с коэффициентами, изначально равными 0.

На каждом шаге алгоритм определяет переменную, наиболее коррелированную с текущим остатком. Затем он вычисляет простой коэффициент линейной регрессии остатка для этой выбранной переменной, а затем добавляет его к текущему коэффициенту для этой переменной. Это продолжается до тех пор, пока ни одна из переменных не будет иметь корреляции с невязками, то есть наименьших квадратов не будет, если 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 - вектор-столбец выходных данных. Т.е. у = Х * б + ошибка.

На вопрос, потому что этот алгоритм дает мне только несколько ненулевых коэффициентов в наборе данных, на котором я его тестирую (с порогом = .0001), и точность прогноза совсем не очень хорошая.

Ответы:


5

Они авторы плохо объясняют алгоритм в своей книге. Если вы посмотрите на уравнения 1.6 и 1.7 в их статье , это станет понятнее. Эта статья имеет несколько иную формулировку (она строит остаток, а не вектор коэффициентов), но ключевой момент заключается в том, что он подходит для наименьших квадратов очень маленькими шагами (вот почему в книге упоминается, что алгоритм может занять "гораздо больше чем р шаги "до конца). Вы можете либо заменить «регресс (...)» небольшим числом, либо умножить его на что-то вроде 0,05. Поиграйте с этим и посмотрите, что работает.

Кроме того, ваш порог кажется маленьким. r '* X даст числа, пропорциональные, но намного превышающие фактические корреляции (например, для данных о диабете в статье корреляции составляют ~ 70-900).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.