Лассо
Материал из MachineLearning.
(Новая: == Lasso == '''Lasso (Least absolute shrinkage and selection operator)''' - метод оценивания коэффициентов линейной [[Регрессионная...) |
|||
Строка 2: | Строка 2: | ||
'''Lasso (Least absolute shrinkage and selection operator)''' - метод оценивания коэффициентов линейной [[Регрессионная модель|регрессионной модели]]. | '''Lasso (Least absolute shrinkage and selection operator)''' - метод оценивания коэффициентов линейной [[Регрессионная модель|регрессионной модели]]. | ||
- | + | Метод заключается во введении ограничения на норму вектора коэффициентов модели, что приводит к обращению в 0 некоторых коэффициентов модели. Метод | |
приводит к повышению устойчивости модели в случае большого [[Сингулярное разложение|числа обусловленности]] матрицы признаков <tex>X</tex>, позволяет получить интерпретируемые модели - отбираются признаки, оказывающие наибольшее влияние на вектор ответов. | приводит к повышению устойчивости модели в случае большого [[Сингулярное разложение|числа обусловленности]] матрицы признаков <tex>X</tex>, позволяет получить интерпретируемые модели - отбираются признаки, оказывающие наибольшее влияние на вектор ответов. | ||
Строка 10: | Строка 10: | ||
Пусть <tex>X = \{\mathbf{x}_1,\mathbf{x}_2...,\mathbf{x}_m\}</tex> - матрица значений свободных переменных (матрица признаков), <tex>y</tex> - вектор ответов. | Пусть <tex>X = \{\mathbf{x}_1,\mathbf{x}_2...,\mathbf{x}_m\}</tex> - матрица значений свободных переменных (матрица признаков), <tex>y</tex> - вектор ответов. | ||
- | |||
- | |||
- | |||
- | |||
Пусть столбцы <tex>X</tex> нормированы, математическое ожидание каждой из свободных переменных равно 0, так что выполнены следующие условия. | Пусть столбцы <tex>X</tex> нормированы, математическое ожидание каждой из свободных переменных равно 0, так что выполнены следующие условия. | ||
Строка 20: | Строка 16: | ||
<center><tex> \frac{1}{n}\sum_{i=1}^{n}{y_i} = 0,</tex></center> где <tex>j = 1,2, \dots,m.</tex> | <center><tex> \frac{1}{n}\sum_{i=1}^{n}{y_i} = 0,</tex></center> где <tex>j = 1,2, \dots,m.</tex> | ||
- | + | Назначена [[Линейная регрессия (пример)|линейная модель]]. Регрессионные коэффициенты <tex>\beta = (\beta_1,\beta_2,\dots,\beta_m)'</tex> определяют вектор <tex>\mu</tex>: | |
- | + | ||
<center><tex>\mu = \sum_{j=1}^{m}\mathbf{x}_j\beta_j = X\beta</tex></center>. | <center><tex>\mu = \sum_{j=1}^{m}\mathbf{x}_j\beta_j = X\beta</tex></center>. | ||
[[Обучение с учителем|Критерием качества]] модели считается [[Метод наименьших квадратов|среднеквадратичная ошибка]]. | [[Обучение с учителем|Критерием качества]] модели считается [[Метод наименьших квадратов|среднеквадратичная ошибка]]. | ||
<center><tex> S(\beta) = ||\mathbf{y}-\mu||^2 = \sum_{i=1}^{n}(\mathbf{y}_i-\mu_{i})^2</tex></center> | <center><tex> S(\beta) = ||\mathbf{y}-\mu||^2 = \sum_{i=1}^{n}(\mathbf{y}_i-\mu_{i})^2</tex></center> | ||
+ | |||
+ | Результатом минимизации среднеквадратичной ошибки по <tex>\beta</tex> [[Метод наименьших квадратов|методом наименьших квадратов]] является вектор <tex>\hat\beta</tex>. | ||
Пусть <tex>T(\hat\beta)</tex> - сумма модулей регрессионных коэффициентов, | Пусть <tex>T(\hat\beta)</tex> - сумма модулей регрессионных коэффициентов, | ||
Строка 32: | Строка 29: | ||
<center><tex>T(\hat\beta)\le t, </tex></center> | <center><tex>T(\hat\beta)\le t, </tex></center> | ||
- | где <tex>t</tex> - [[ | + | где <tex>t\ge 0</tex> - [[Регуляризация|параметр регуляризации]]. |
Для нахождения коэффициентов можно использовать метод квадратичного программирования с линейным ограничением-неравенством. | Для нахождения коэффициентов можно использовать метод квадратичного программирования с линейным ограничением-неравенством. | ||
- | При больших значениях <tex>t</tex> решение совпадает с решением | + | При больших значениях <tex>t</tex> решение совпадает с решением метода наименьших квадратов. Чем меньше <tex>t</tex>, тем большее число коэффициентов <tex>\hat\beta_i</tex> принимают нулевое значение. |
Таким образом, Lasso осуществляет отбор информативных признаков. | Таким образом, Lasso осуществляет отбор информативных признаков. | ||
== Алгоритмы нахождения решения == | == Алгоритмы нахождения решения == | ||
=== Алгоритм 1 === | === Алгоритм 1 === | ||
- | Зафиксируем <tex>t | + | Зафиксируем <tex>t</tex>. |
Задача может быть рассмотрена как метод наименьших квадратов с <tex>2^m</tex> ограничениями-неравенствами, соответствующими <tex>2^m</tex> возможных знаков параметров <tex>\hat\beta_j</tex>. | Задача может быть рассмотрена как метод наименьших квадратов с <tex>2^m</tex> ограничениями-неравенствами, соответствующими <tex>2^m</tex> возможных знаков параметров <tex>\hat\beta_j</tex>. | ||
- | В [1] описана процедура поиска решения для линейного метода наименьших квадратов при линейных ограничениях-неравенствах общего вида <tex>G\hat\beta\le \mathbf{h}</tex>.Здесь <tex>G</tex> - матрица <tex>p\times m</tex>, соответствующая линейным ограничениям-неравенствам на m-мерный вектор <tex>\hat\beta</tex>. Число <tex>p = 2^m</tex> может быть очень большим, поэтому прямое применение процедуры на практике становится невозможным. | + | В [1] описана процедура поиска решения для линейного метода наименьших квадратов при линейных ограничениях-неравенствах общего вида <tex>G\hat\beta\le \mathbf{h}</tex>. Здесь <tex>G</tex> - матрица <tex>p\times m</tex>, соответствующая линейным ограничениям-неравенствам на m-мерный вектор <tex>\hat\beta</tex>. Число <tex>p = 2^m</tex> может быть очень большим, поэтому прямое применение процедуры на практике становится невозможным. |
- | Тем не менее, задачу можно решать, последовательно вводя ограничения-неравенства и требуя от решения удовлетворения [[Условия Куна-Такера|условий Куна-Такера]] | + | Тем не менее, задачу можно решать, последовательно вводя ограничения-неравенства и требуя от решения удовлетворения [[Условия Куна-Такера|условий Куна-Такера]] [1]. |
- | <tex>\delta_i, i = 1,2,\dots,2^m</tex> - <tex>m</tex>-мерные векторы вида <tex>(\pm1,\pm1,\dots,\pm1)</tex>. Тогда условия <tex>\sum_{j=1}^{m}|\beta_j|\le t</tex> эквивалентны <tex>\delta_{i}^T\beta\le t</tex> для всех <tex>i</tex>. Для заданного вектора <tex>\beta,</tex> пусть <tex>E = \{i:\delta_{i}^T\beta= t\}</tex> и <tex>I = \{i:\delta_{i}^T\beta< t\}</tex> | + | Обозначим <tex>\delta_i<\tex>, <tex>i = 1,2,\dots,2^m</tex> - <tex>m</tex>-мерные векторы вида <tex>(\pm1,\pm1,\dots,\pm1)</tex>. Тогда условия <tex>\sum_{j=1}^{m}|\beta_j|\le t</tex> эквивалентны <tex>\delta_{i}^T\beta\le t</tex> для всех <tex>i</tex>. Для заданного вектора <tex>\beta,</tex> пусть <tex>E = \{i:\delta_{i}^T\beta= t\}</tex> и <tex>I = \{i:\delta_{i}^T\beta< t\}</tex>,где <tex>E</tex> - набор индексов, соответствующих равенствам, <tex>I</tex> - набор индексов,для которых неравенство не выполняется. |
- | Выделим матрицу <tex>G_E</tex>, строками которой являются <tex>i\in E</tex>. | + | Выделим матрицу <tex>G_E</tex>, строками которой являются векторы <tex>\delta_i</tex>, где <tex>i\in E</tex>. |
Пусть <tex>\mathbf{1}</tex> - вектор из единиц длинной, равной числу строк в <tex>G_E</tex>. | Пусть <tex>\mathbf{1}</tex> - вектор из единиц длинной, равной числу строк в <tex>G_E</tex>. | ||
Строка 57: | Строка 54: | ||
# Начальное приближение для алгоритма: <tex>E = \{i_0\}</tex>, где <tex>\delta_{i_0} = sign(\beta^0)</tex>, <tex>\beta^0</tex> - оценка вектора параметров методом наименьших квадратов без ограничений-неравенств. | # Начальное приближение для алгоритма: <tex>E = \{i_0\}</tex>, где <tex>\delta_{i_0} = sign(\beta^0)</tex>, <tex>\beta^0</tex> - оценка вектора параметров методом наименьших квадратов без ограничений-неравенств. | ||
# Найти <tex>\tilde\beta</tex>, минимизирующий <tex>S(\hat\beta)</tex> при <tex>G_E\hat\beta \le \mathbf{1} t</tex>. | # Найти <tex>\tilde\beta</tex>, минимизирующий <tex>S(\hat\beta)</tex> при <tex>G_E\hat\beta \le \mathbf{1} t</tex>. | ||
- | # Пока <tex> | + | # Пока <tex>\sum{|\tilde\beta_j|}> t</tex>, |
# добавить <tex>i</tex> в набор <tex>E</tex>, где <tex>\delta_{i} = sign(\tilde\beta)</tex>. Найти новое значение <tex>\tilde\beta</tex>, минимизирующее <tex>S(\beta)</tex> при <tex>G_E\hat\beta \le \mathbf{1}t</tex>. | # добавить <tex>i</tex> в набор <tex>E</tex>, где <tex>\delta_{i} = sign(\tilde\beta)</tex>. Найти новое значение <tex>\tilde\beta</tex>, минимизирующее <tex>S(\beta)</tex> при <tex>G_E\hat\beta \le \mathbf{1}t</tex>. | ||
- | Процедура сходится за конечное число шагов | + | Процедура сходится за конечное число шагов [1], так как на каждом шаге добавляется по одному элементу и число добавляемых элементов конечно. Решение, получаемое на последнем шаге, является решением всей задачи, так как условия Куна-Такера соблюдены для наборов <tex>E</tex> и <tex>I</tex>. |
=== Алгоритм 2 === | === Алгоритм 2 === | ||
- | Существует модификация предыдущего алгоритма, в котором на шаге 4 | + | Существует модификация предыдущего алгоритма, в котором на шаге 4 происходит удаление элементов из <tex>E</tex>, для которых ограничение-неравенства не выполняется. |
- | Этот алгоритм является более эффективным, однако сходимость его не обоснована | + | Этот алгоритм является более эффективным, однако сходимость его не обоснована [2]. |
=== Алгоритм 3 === | === Алгоритм 3 === | ||
- | Давид Гай | + | Давид Гай предложил другой метод. Запишем каждый параметр <tex>\hat\beta_j</tex> в виде <tex>\hat\beta_{j}^{+} - \hat\beta_{j}^{-}</tex>, где <tex>\hat\beta_{j}^{+}</tex> и <tex>\hat\beta_{j}^{-}</tex> неотрицательны. Ограничения-неравенства принимают вид: |
<center><tex> \hat\beta_{j}^{+}\ge 0,</tex> <tex>\hat\beta_{j}^{-}\ge 0</tex></center> | <center><tex> \hat\beta_{j}^{+}\ge 0,</tex> <tex>\hat\beta_{j}^{-}\ge 0</tex></center> | ||
<center><tex> \hat\beta_{j}^{+} + \hat\beta_{j}^{-}\le t.</tex></center> | <center><tex> \hat\beta_{j}^{+} + \hat\beta_{j}^{-}\le t.</tex></center> |
Версия 20:26, 15 декабря 2008
Содержание |
Lasso
Lasso (Least absolute shrinkage and selection operator) - метод оценивания коэффициентов линейной регрессионной модели.
Метод заключается во введении ограничения на норму вектора коэффициентов модели, что приводит к обращению в 0 некоторых коэффициентов модели. Метод приводит к повышению устойчивости модели в случае большого числа обусловленности матрицы признаков , позволяет получить интерпретируемые модели - отбираются признаки, оказывающие наибольшее влияние на вектор ответов.
Описание метода
Задана выборка .
Пусть - матрица значений свободных переменных (матрица признаков), - вектор ответов.
Пусть столбцы нормированы, математическое ожидание каждой из свободных переменных равно 0, так что выполнены следующие условия.
Назначена линейная модель. Регрессионные коэффициенты определяют вектор :
Критерием качества модели считается среднеквадратичная ошибка.
Результатом минимизации среднеквадратичной ошибки по методом наименьших квадратов является вектор .
Пусть - сумма модулей регрессионных коэффициентов,
В Lasso выбирается из условия минимизации при ограничении
где - параметр регуляризации.
Для нахождения коэффициентов можно использовать метод квадратичного программирования с линейным ограничением-неравенством.
При больших значениях решение совпадает с решением метода наименьших квадратов. Чем меньше , тем большее число коэффициентов принимают нулевое значение. Таким образом, Lasso осуществляет отбор информативных признаков.
Алгоритмы нахождения решения
Алгоритм 1
Зафиксируем .
Задача может быть рассмотрена как метод наименьших квадратов с ограничениями-неравенствами, соответствующими возможных знаков параметров .
В [1] описана процедура поиска решения для линейного метода наименьших квадратов при линейных ограничениях-неравенствах общего вида . Здесь - матрица , соответствующая линейным ограничениям-неравенствам на m-мерный вектор . Число может быть очень большим, поэтому прямое применение процедуры на практике становится невозможным.
Тем не менее, задачу можно решать, последовательно вводя ограничения-неравенства и требуя от решения удовлетворения условий Куна-Такера [1].
Обозначим - -мерные векторы вида . Тогда условия эквивалентны для всех . Для заданного вектора пусть и ,где - набор индексов, соответствующих равенствам, - набор индексов,для которых неравенство не выполняется.
Выделим матрицу , строками которой являются векторы , где .
Пусть - вектор из единиц длинной, равной числу строк в .
- Начальное приближение для алгоритма: , где , - оценка вектора параметров методом наименьших квадратов без ограничений-неравенств.
- Найти , минимизирующий при .
- Пока ,
- добавить в набор , где . Найти новое значение , минимизирующее при .
Процедура сходится за конечное число шагов [1], так как на каждом шаге добавляется по одному элементу и число добавляемых элементов конечно. Решение, получаемое на последнем шаге, является решением всей задачи, так как условия Куна-Такера соблюдены для наборов и .
Алгоритм 2
Существует модификация предыдущего алгоритма, в котором на шаге 4 происходит удаление элементов из , для которых ограничение-неравенства не выполняется. Этот алгоритм является более эффективным, однако сходимость его не обоснована [2].
Алгоритм 3
Давид Гай предложил другой метод. Запишем каждый параметр в виде , где и неотрицательны. Ограничения-неравенства принимают вид:
Таким образом начальная задача с переменными и ограничениями может быть преобразована в новую задачу с переменными, но меньшим числом ограничений . Можно показать, что решение новой задачи является решением для начальной.
Смотри также
Список литературы
- Lawson C., Hansen R. Solving Least Squares Problems. 1974.
- Tibshirani R. Regression shrinkage and Selection via the Lasso. //Journal of the Royal Statistical Society.Series B(Metodological). 1996 Vol. 32, № 1, p.267-288.
- Efron B., Hastie T., Johnstone J., Tibshirani R. Least Angle Regression. //The Annals of Statistics.2004 Vol.32, № 2,p.407-499.