Метод наименьших углов (пример)
Материал из MachineLearning.
(Новая: Метод наименьших углов (англ. least angle regression, LARS) — алгоритм отбора признаков в задачах линейной [[рег...) |
|||
Строка 1: | Строка 1: | ||
- | Метод наименьших углов (англ. least angle regression, LARS) | + | Метод наименьших углов (англ. least angle regression, LARS) - |
- | Алгоритм предложили Бредли Эфрон, Тревор Хасти и Роберт Тибширани [http://stat.stanford.edu/ | + | алгоритм отбора признаков в задачах линейной [[регрессия|регрессии]]. |
+ | Алгоритм предложили Бредли Эфрон, Тревор Хасти и Роберт Тибширани | ||
+ | [http://stat.stanford.edu/ imj/WEBLIST/2004/LarsAnnStat04.pdf]. | ||
- | LARS решает следующую задачу. Пусть назначена [[линейная регрессия|линейная регрессионная модель]]. | + | LARS решает следующую задачу. Пусть назначена [[линейная регрессия (пример)|линейная регрессионная модель]]. |
- | При большом количестве свободных переменных возникает проблема [[ | + | При большом количестве свободных переменных возникает проблема [[ридж-регрессия|неустойчивого оценивания]] весов модели. |
LARS предлагает метод выбора такого набора свободных переменных, который имел бы наиболее значимую статистическую связь с | LARS предлагает метод выбора такого набора свободных переменных, который имел бы наиболее значимую статистическую связь с | ||
зависимой переменной. Также LARS предлагает метод оценки весов. | зависимой переменной. Также LARS предлагает метод оценки весов. | ||
Строка 11: | Строка 13: | ||
с вектором [[анализ регрессионных остатков|регрессионных остатков]]. | с вектором [[анализ регрессионных остатков|регрессионных остатков]]. | ||
Основным достоинством LARS является то, что он выполняется за число шагов, не превышающее число свободных переменных. | Основным достоинством LARS является то, что он выполняется за число шагов, не превышающее число свободных переменных. | ||
- | |||
Частным случаем алгоритма LARS является алгоритм [[Лассо|LASSO]]. | Частным случаем алгоритма LARS является алгоритм [[Лассо|LASSO]]. | ||
- | {{ | + | == Постановка задачи == |
+ | |||
+ | Задана выборка - матрица <tex>X</tex>, столбцы которой соответствуют независимым переменным, а строки - элементам выборки и вектор <tex>\mathbf{y}</tex>, | ||
+ | содержащий элементы выборки. Назначена линейная модель <tex>\mathbf{y}=X\mathbf{\beta}+\mathbf{\varepsilon}</tex>. | ||
+ | |||
+ | Обозначим множество столбцов матрицы <tex>X</tex> как <tex>\{\mathbf{x}_1,\ldots,\mathbf{x}_n\}</tex>. | ||
+ | Пусть выполнены условия нормировки | ||
+ | <center><tex> \|\mathbf{y}\|_1=0, </tex> <tex> \|\mathbf{x}_j\|_1=0, </tex> <tex>\|\mathbf{x}_j\|_2^2=0, </tex>nbsp; где j=1,\ldots,n.</tex></center> | ||
+ | Предполагается, что векторы <tex>\mathbf{x}_1,\ldots,\mathbf{x}_n</tex> линейно независимы. | ||
+ | |||
+ | Критерием качества модели назначена среднеквадратичная ошибка | ||
+ | <center><tex> S(\mathbf{\beta}) = \|\mathbf{y}-\mathbf{\mu}\|^2, </tex> где <tex>\mathbf{\mu} = X\mathbf{\beta}.</tex></center> | ||
+ | |||
+ | Требуется найти для каждого шага LARS вектор весов <tex>\mathbf{\beta}</tex> и набор столбцов, | ||
+ | доставляющий наибольшую корреляцию векторов <tex>\mathbf{\mu}</tex> и <tex>\mathbf{y}</tex>. | ||
+ | |||
+ | == Описание алгоритма == | ||
+ | |||
+ | LARS последовательными шагами строит оценку коэффициентов <tex>\hat{\mathbf{\beta}}</tex>. | ||
+ | На <tex>k</tex>-м шаге только <tex>k</tex> элементов вектора <tex>\hat{\mathbf{\beta}}</tex> отличны от нуля. | ||
+ | Алгоритм последовательно вычисляет приближение вектора значений зависимой переменной | ||
+ | <center><tex>\mathbf{\mu}=X\mathbf{\beta}.</tex></center> | ||
+ | Для приближений используется вектор корреляций столбцов матрицы <tex>X</tex> с вектором остатков <tex>\mathbf{y}-\mathbf{\mu}</tex> | ||
+ | <center><tex>\mathbf{c}(\mathbf{\mu})=X^T(\mathbf{y}-\mathbf{\mu}).</tex></center> | ||
+ | |||
+ | [[Изображение:lars_2d.png|right|frame| | ||
+ | Пример работы алгоритма в случае двух переменных. Пусть вектор <tex>\bar{\mathbf{y}}_2</tex> является проекцией вектора <tex>\mathbf{y}</tex> | ||
+ | на линейное подпространство <tex>\text{span}(\mathbf{x}_1,\mathbf{x}_2)</tex>. Назначим начальное приближение <tex>\hat{\mathbf{\mu}}_0= | ||
+ | \mathbf{0}</tex>. Вектор регрессионных остатков <tex>\bar{\mathbf{y}}_2-\hat{\mathbf{\mu}}_0</tex> коррелирует с вектором <tex>\mathbf{x}_1</tex> больше, | ||
+ | чем с вектором <tex>\mathbf{x}_2</tex>. Первый шаг заключается в оценке <tex>\hat{\mathbf{\mu}}_1=\hat{\mathbf{\mu}}_0+\gamma_1\mathbf{x}_1</tex>. | ||
+ | Скаляр <tex>\gamma_1</tex> выбирается таким образом, что вектор остатков <tex>\bar{\mathbf{y}}_2-\hat{\mathbf{\mu}}_0</tex> | ||
+ | делит пополам угол между векторами <tex>\mathbf{x}_1</tex> и <tex>\mathbf{x}_2</tex>. Далее получаем значение <tex>\hat{\mathbf{\mu}}_2=\hat{\mathbf{\mu}}_1+\gamma_2\mathbf{u}_2</tex>, | ||
+ | где <tex>\mathbf{u}_2</tex> - единичный вектор, делящий этот угол пополам. | ||
+ | Так как мы рассматриваем случай двух переменных, то | ||
+ | <tex>\hat{\mathbf{\mu}}_2=\bar{\mathbf{y}}_2</tex>. | ||
+ | ]] | ||
+ | |||
+ | На <tex>k</tex>-м шаге новое значение приближения вектора значений зависимой переменной <tex>\mathbf{y}</tex> вычисляется как | ||
+ | <center><tex>\hat{\mathbf{\mu}}_k=\hat{\mathbf{\mu}}_{k-1}+\gamma_k\mathbf{u}_k.</tex></center> | ||
+ | Здесь <tex>\mathbf{u}_k</tex> - единичный вектор, задающий биссектрису векторов--столбцов матрицы <tex>X</tex>. | ||
+ | |||
+ | Он вычисляется следующим образом. Пусть <tex>\mathcal{A}</tex> - подмножество индексов <tex>\{1,\dots,n\}</tex> столбцов матрицы <tex>X</tex>. | ||
+ | Это подмножество задает подматрицу | ||
+ | <center><tex>X_\mathcal{A} = [s_{j_1}\mathbf{x}_{j_1},\ldots,s_{j_{|\mathcal{A}|}}\mathbf{x}_{j_{|\mathcal{A}|}}], j\in\mathcal{A},</tex></center> | ||
+ | где множитель <tex>s\in\{+1, -1\}</tex> и <tex>|\mathcal{A}|</tex> - мощность множества <tex>\mathcal{A}</tex>. | ||
+ | Обозначим ковариационную матрицу | ||
+ | <center><tex>\mathcal{G} = X_{\mathcal{A}}^TX_{\mathcal{A}} </tex> и <tex>A_{\mathcal{A}} = (\mathbf{1}_{\mathcal{A}}^T\mathcal{G}^{-1}_{\mathcal{A}}\mathbf{1}_{\mathcal{A}})^{-\frac{1}{2}},</tex></center> | ||
+ | где <tex>\mathbf{1}_{\mathcal{A}}</tex> - вектор, состоящий из <tex>|\mathcal{A}|</tex> единиц. | ||
+ | |||
+ | Вычислим единичный вектор | ||
+ | <center><tex>\mathbf{u}_{\mathcal{A}} = X_{\mathcal{A}}\mathbf{w}_{\mathcal{A}}, | ||
+ | </tex> где <tex>\mathbf{w}_{\mathcal{A}} = A_{\mathcal{A}}\mathcal{G}_{\mathcal{A}}^{-1}\mathbf{1}_{\mathcal{A}}.</tex></center> | ||
+ | Вектор <tex>\mathbf{u}</tex> образует со столбцами матрицы <tex>X_{\mathcal{A}}</tex> одинаковые углы, меньшие <tex>\frac{\pi}{2}</tex>. | ||
+ | Справедливы равенства | ||
+ | <center><tex>X'_{\mathcal{A}}\mathbf{u}_{\mathcal{A}} = A_{\mathcal{A}}\mathbf{1}_{\mathcal{A}}</tex> и <tex>\|\mathbf{u}_{\mathcal{A}}\|^{2} = 1.</tex></center> | ||
+ | |||
+ | == Выполнение алгоритма == | ||
+ | |||
+ | Назначим начальную оценку вектора значений зависимой переменной <tex>\hat{\mathbf{\mu}}=\mathbf{0}</tex>. | ||
+ | Вычислим текущую оценку <tex>\hat{\mathbf{\mu}}_{\mathcal{A}}</tex> и вектор корреляций | ||
+ | <center><tex>\hat{\mathbf{c}} = X^T(\mathbf{y}-\hat{\mathbf{\mu}}_{\mathcal{A}}).</tex></center> | ||
+ | Найдем текущий набор индексов <tex>\mathcal{A}</tex>, соответствующих признакам с наибольшими абсолютными значениями корреляций | ||
+ | <center><tex>\hat C = \max_{j=1,\ldots,n}\{|\hat c_j|\} </tex> и <tex>\mathcal{A} = \{j:|\hat c_j| = \hat C\}.</tex></center> | ||
+ | |||
+ | Пусть <tex>s_j = \text{sign}(\hat c_j)</tex> для <tex>j\in\mathcal{A}.</tex> | ||
+ | Построим матрицы <tex>X_{\mathcal{A}}</tex>, <tex>A_{\mathcal{A}}</tex>. Вычислим вектор <tex>\mathbf{u}_{\mathcal{A}}</tex> и вектор скалярных произведений | ||
+ | <center><tex>\mathbf{a}=X^T\mathbf{u}_{\mathcal{A}}.</tex></center> | ||
+ | |||
+ | Пересчитаем значение вектора <tex>\hat{\mathbf{\mu}}_{\mathcal{A}}</tex> | ||
+ | <center><tex>\hat{\mathbf{\mu}}_{\mathcal{A_{+}}} = \hat{\mathbf{\mu}}_{\mathcal{A}} + \hat\gamma\mathbf{u}_{\mathcal{A}},</tex></center> | ||
+ | где | ||
+ | <center><tex>\hat\gamma = {\min_{j\in\mathcal{A}^c}}^{+}\lbrace\frac{\hat{C}-\hat c_i}{A_{\mathcal{A}}-a_j},\frac{\hat C + \hat c_j}{A_{\mathcal{A}}+a_j}\rbrace. </tex> (*)</center> | ||
+ | |||
+ | Минимум берется по всем положительным значениям аргументов для каждого <tex>j</tex>. | ||
+ | |||
+ | Алгоритм повторяется <tex>n</tex> раз. | ||
+ | |||
+ | == Замечание == | ||
+ | |||
+ | Величина <tex>\gamma</tex> в формуле (*) интерпретируется следующим образом. | ||
+ | Определим | ||
+ | <center><tex>\mathbf{\mu}(\gamma) = {\mathbf{\mu}}_{\mathcal{A}}+\gamma\mathbf{u}_{\mathcal{A}}</tex></center> | ||
+ | при условии <tex>\gamma>0</tex>. Корреляция по добавляемому <tex>j</tex>-му признаку равна | ||
+ | <center><tex>c_j(\gamma)=\mathbf{x}_j^T(\mathbf{y}-\mathbf{\mu}(\gamma)) = c_{j} - \gamma a_{j}.</tex></center> | ||
+ | Для <tex>j\in\mathcal{A}</tex> получаем | ||
+ | <center><tex>|c_{j}(\gamma)|=C-\gamma A_{\mathcal{A}}.</tex></center> | ||
+ | Это означает, что все рассматриваемые на данном шаге максимальные абсолютные корреляции уменьшаются на одну и ту же величину. | ||
+ | Из предыдущих двух соотношений мы видим, | ||
+ | что при <tex>j\in \mathcal{A}^c</tex> корреляция <tex>c_j(\gamma)</tex> принимает наибольшее значение при | ||
+ | <center><tex>\gamma = \frac{C-c_{j}}{A_{\mathcal{A}}-a_j}.</tex></center> | ||
+ | Аналогично, корреляция <tex>-c_j(\gamma)</tex> принимает наибольшее значение при | ||
+ | <center><tex>\gamma = \frac{C+c_{j}}{A_{\mathcal{A}}+a_j}.</tex></center> | ||
+ | |||
+ | Таким образом, <tex>\gamma</tex> в выражении (*) - минимальная положительная величина, при которой новый индекс <tex>j</tex> | ||
+ | может быть добавлен в набор <tex>\mathcal{A}</tex>. | ||
+ | |||
+ | == Пример == | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | == Литература == | ||
+ | * Tibshirani R. Regression shrinkage and Selection via the Lasso. // Journal of the Royal Statistical Society.Series B(Metodological). 1996 Vol. 32, \No 1, p.267-288. | ||
+ | * Efron B., Hastie T., Johnstone J., Tibshirani R. Least Angle Regression. // The Annals of Statistics, 2004. Vol. 32, \No 2, p. 407-499. | ||
+ | \end{thebibliography} | ||
+ | \end{document} | ||
+ | |||
+ | == См. также == | ||
+ | * [http://strijov.com/sources/demo_lars.php Полный текст данного примера] | ||
+ | * [[Регрессионный анализ]] | ||
+ | * [[Регрессионная модель]] | ||
+ | * [[Линейная регрессия (пример)]] | ||
+ | * [[Порождение линейных регрессионных моделей (постановка задачи)]] | ||
+ | * [[Лассо]] | ||
+ | |||
+ | [[Категория:Регрессионный анализ]] |
Версия 13:51, 21 апреля 2009
Метод наименьших углов (англ. least angle regression, LARS) - алгоритм отбора признаков в задачах линейной регрессии. Алгоритм предложили Бредли Эфрон, Тревор Хасти и Роберт Тибширани [1].
LARS решает следующую задачу. Пусть назначена линейная регрессионная модель. При большом количестве свободных переменных возникает проблема неустойчивого оценивания весов модели. LARS предлагает метод выбора такого набора свободных переменных, который имел бы наиболее значимую статистическую связь с зависимой переменной. Также LARS предлагает метод оценки весов.
Алгоритм LARS похож на алгоритм шаговой регрессии. Различие в том, что вместо последовательного добавления свободных, на каждом шаге алгоритмов происходит измерение весов модели. Веса увеличиваются так, чтобы доставить наибольшую корреляцию с вектором регрессионных остатков. Основным достоинством LARS является то, что он выполняется за число шагов, не превышающее число свободных переменных. Частным случаем алгоритма LARS является алгоритм LASSO.
Содержание |
Постановка задачи
Задана выборка - матрица , столбцы которой соответствуют независимым переменным, а строки - элементам выборки и вектор , содержащий элементы выборки. Назначена линейная модель .
Обозначим множество столбцов матрицы как . Пусть выполнены условия нормировки
Предполагается, что векторы линейно независимы.
Критерием качества модели назначена среднеквадратичная ошибка
Требуется найти для каждого шага LARS вектор весов и набор столбцов, доставляющий наибольшую корреляцию векторов и .
Описание алгоритма
LARS последовательными шагами строит оценку коэффициентов . На -м шаге только элементов вектора отличны от нуля. Алгоритм последовательно вычисляет приближение вектора значений зависимой переменной
Для приближений используется вектор корреляций столбцов матрицы с вектором остатков
На -м шаге новое значение приближения вектора значений зависимой переменной вычисляется как
Здесь - единичный вектор, задающий биссектрису векторов--столбцов матрицы .
Он вычисляется следующим образом. Пусть - подмножество индексов столбцов матрицы . Это подмножество задает подматрицу
где множитель и - мощность множества . Обозначим ковариационную матрицу
где - вектор, состоящий из единиц.
Вычислим единичный вектор
Вектор образует со столбцами матрицы одинаковые углы, меньшие . Справедливы равенства
Выполнение алгоритма
Назначим начальную оценку вектора значений зависимой переменной . Вычислим текущую оценку и вектор корреляций
Найдем текущий набор индексов , соответствующих признакам с наибольшими абсолютными значениями корреляций
Пусть для Построим матрицы , . Вычислим вектор и вектор скалярных произведений
Пересчитаем значение вектора
где
Минимум берется по всем положительным значениям аргументов для каждого .
Алгоритм повторяется раз.
Замечание
Величина в формуле (*) интерпретируется следующим образом. Определим
при условии . Корреляция по добавляемому -му признаку равна
Для получаем
Это означает, что все рассматриваемые на данном шаге максимальные абсолютные корреляции уменьшаются на одну и ту же величину. Из предыдущих двух соотношений мы видим, что при корреляция принимает наибольшее значение при
Аналогично, корреляция принимает наибольшее значение при
Таким образом, в выражении (*) - минимальная положительная величина, при которой новый индекс может быть добавлен в набор .
Пример
Литература
- Tibshirani R. Regression shrinkage and Selection via the Lasso. // Journal of the Royal Statistical Society.Series B(Metodological). 1996 Vol. 32, \No 1, p.267-288.
- Efron B., Hastie T., Johnstone J., Tibshirani R. Least Angle Regression. // The Annals of Statistics, 2004. Vol. 32, \No 2, p. 407-499.
\end{thebibliography} \end{document}