Квадратичное программирование и лассо


11

Я пытаюсь выполнить регрессию лассо, которая имеет следующую форму:

Минимизируйте вw(Y−Xw)′(Y−Xw)+λ|w|1

Учитывая , мне посоветовали найти оптимальное с помощью квадратичного программирования, которое принимает следующую форму:λw

Минимизируйте в , в зависимости отx12x′Qx+c′xAx≤b.

Теперь я понимаю, что термин должен быть преобразован в термин ограничения , что довольно просто. Однако я почему-то просто не понимаю, как я мог бы перевести первый член первого уравнения в первый член второго. Я не мог найти много об этом в сети, поэтому я решил спросить здесь.λAx≤b

Ответы:


10

Помня, что мы работаем с переменной в качестве переменной в стандартной форме, разверните и соберите термины в и в и , и константы.x ( Y - X w ) ′ ( Y - X w ) w ′wx(Y−Xw)′(Y−Xw)w ′ ww′[something]ww′w

Объясните, почему вы можете игнорировать константы.

Объясните, почему вы можете объединить термины и . ww′w


Поскольку BananaCode к настоящему моменту определился с некоторым опережением по пути, вы можете написать и или, проще, вы можете просто написать и (поскольку и имеют одинаковый аргумент argmin для любого ).c = - 2 X ′ Y Q = X ′ X c = - X ′ Y f ( x ) k f ( x ) k > 0Q=2X′Xc=−2X′Y Q=X′Xc=−X′Yf(x)kf(x)k>0


Константы можно игнорировать, потому что если x_ является минимумом f (x), то x_ + c является минимумом f (x) + c, поэтому мы можем игнорировать константу c. Я отредактирую свой вопрос, чтобы показать, где я застрял.
— Спурра

BananaCode у вашего объяснения есть несколько недостатков. Если под «это минимум для » вы подразумеваете «аргумент, при котором минимизируется», вы говорите что-то вроде « - это of ». Но ваш вывод там неверный. Если вы добавите к , вы не добавите к argmin. f ( x ) x ∗ аргмин f c f cf(x)f(x)x∗argminfcfc
— Glen_b

Видите, где я написал в моем ответе? Что - то теперь у вас есть между а в нижней части вашего вопроса ?? w ′ ww′[something]ww′w
— Glen_b

Да, я имел в виду является из . Не могли бы вы привести пример, где мой вывод неверен? является матрицы Я пытаюсь сформировать. Если я расширяю я получаю . Первая часть будет представлять форму матрицы , однако я не могу избавиться от второго члена . г г м I п F [ s O м е т ч я н г ] В ш ' ( Х ' Х ш - Х ' У ) ш ' X ' X ш - ш ' X ' Y Q - ш ' X ′ Yx∗argminf[something]Qw′(X′Xw−X′Y)w′X′Xw−w′X′YQ−w′X′Y
— Спурра

1
@ AD.Net Ограничения в основном рассматриваются в другом ответе.
— Glen_b

11

Я хотел добавить, как решить преобразование ограничений очень удобная форма для квадратичного программирования, поскольку она не так проста, как я думал. Невозможно найти вещественную матрицу такую, что .A A w ≤ s ↔ ∑ | ш я | ≤ с∑|wi|≤sAAw≤s↔∑|wi|≤s

Подход, который я использовал, состоял в том, чтобы разделить элементы вектора на и , так что . Если , у вас есть и , иначе у вас естьи . Или, в более математических терминах, иИ и - неотрицательные числа. Идея разделения чисел состоит в том, что теперь у вас есть w w + i w - i w i = w + i - w - i w i ≥ 0 w + i = w i w - i = 0 w - i = | ш я | w + i = 0 w + i = | ш я | + ш яwiwwi+wi−wi=wi+−wi−wi≥0wi+=wiwi−=0wi−=|wi|wi+=0 ш - я =| шя| -шIwi+=|wi|+wi2w - i w + i | шя| =w + i +w - iwi−=|wi|−wi2.wi−wi+|wi|=wi++wi−, эффективно избавляясь от абсолютных значений.

Функция для оптимизации превращается в: , субъект к 12(w+−w−)TQ(w+−w−)+cT(w+−w−)wi++wi−≤s,wi+,wi−≥0

Где и даны как указано выше Glen_bQc

Это должно быть преобразовано в удобную форму, то есть нам нужен один вектор. Это делается следующим образом:

12[w+w−]T[Q−Q−QQ][w+w−]+[cT−cT][w+w−]

при условии

[IDID−I2D][w+w−]≤[sD02D]

Где - мерная единичная матрица, - мерный вектор, состоящий только из значения а - -мерный нулевой вектор. Первая половина обеспечивает , второй Теперь можно использовать квадратичное программирование для поиска и , заданных . Как только это будет сделано, вашим оптимальным параметром по отношению к будет . D s D D s 0 D 2 ∗ D | ш я | = w + i + w - i ≤ s w + i , w - i ≥ 0 w + w - s s w = w + - w -IDDsDDs0D2∗D|wi|=wi++wi−≤swi+,wi−≥0w+w−ssw=w+−w−

Источник и дальнейшее чтение: Решение квадратичного программирования с линейными ограничениями , содержащие абсолютные значения


Предположим, что мы нашли оптимальный вектор . Что гарантирует , что и на самом деле положительные части и отрицательные части некоторого вектора , т.е. их позиции входа совпадают? ( w + , w - ) w + w - w 02D(w+,w−)w+w−w0
— Миаф

Матрица и вектор в конечном выражении могут быть более простыми и более правильными. Вместо [Id Id] [w + w−] '≤ Sd вы можете просто указать [1 1 .... 1] [w + w-]' ≤ s. Это буквально эквивалентно ∑ | wi | = ∑ (wi + + wi−) ≤ s.
— Марко
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.