Пакет программ для решения линейной регрессии L-бесконечности


10

Существует ли какой-либо программный пакет для решения линейной регрессии с целью минимизации нормы L-бесконечности.


Ну, любой пакет линейного программирования будет работать. Это оставляет вам много вариантов. :)
— кардинал

1
@Cardinal Как бы вы изменили это как линейную программу? Не очевидно, как это сделать, даже в тривиальных случаях (например, в двух точках данных и одном параметре): ограничений нет, а целевая функция нелинейная.
— whuber

Ключевая фраза : чебышевское приближение. (Далее. Идея состоит в том, чтобы ввести дополнительную переменную, а затем превратить цель в ограничения.)
— кардинал

@cardinal Вы имеете в виду это: mathworld.wolfram.com/ChebyshevApproximationFormula.html Это кажется довольно сложным.
— Фан Чжан

Ну, это немного связано, но не относится к этой проблеме. Ваша проблема может быть решена с помощью простого LP. Как только я доберусь до компьютера, я выложу ответ.
— кардинал

Ответы:


17

Краткий ответ : Ваша проблема может быть сформулирована как линейная программа (LP), позволяя вам выбрать свой любимый решатель LP для этой задачи. Чтобы узнать, как записать проблему в виде LP, читайте дальше.

Эту проблему минимизации часто называют чебышевским приближением .

Пусть , со строкой обозначенной и . Затем мы стремимся минимизировать функцию относительно . Обозначим оптимальное значение через y=(yi)∈RnX∈Rn×pixiβ∈Rpf(β)=‖y−Xβ‖∞β

f⋆=f(β⋆)=inf{f(β):β∈Rp}.

Ключ к преобразованию этого в LP - переписать проблему в форме эпиграфа . Нетрудно убедить себя, что на самом деле

f⋆=inf{t:f(β)≤t,t∈R,β∈Rp}.

Теперь, используя определение функции , мы можем переписать правую часть выше как и мы видим, что минимизация нормы в настройке регрессии эквивалентна LP где выполняется оптимизация через , а обозначает вектор единиц длины . Я оставляю читателю в качестве (простого) упражнения переписать вышеуказанный LP в стандартной форме.f ⋆ = inf { t : - t ≤ y i - x i β ≤ t ,fℓ ∞ свести к минимуму т подлежащего у - Х & beta ; & le ; т 1 н

f⋆=inf{t:−t≤yi−xiβ≤t,t∈R,β∈Rp,1≤i≤n},
ℓ∞ (β,t)1nn
minimizetsubject toy−Xβ≤t1ny−Xβ≥−t1n,
(β,t)1nn

Связь с версией линейной регрессии (полная вариация)ℓ1

Интересно отметить, что нечто очень похожее можно сделать с нормы . Пусть . Затем аналогичные аргументы приводят к выводу, что так что соответствующий LP является г ( & beta ; ) = | | у - Х & beta ; | | 1 г ⋆ = инф { т Т 1 п : - т я ≤ у я - х я & beta ; ≤ т я ,ℓ1g(β)=‖y−Xβ‖1Свести к минимуму т Т 1 л при условии у - Х & beta ; & le ; т

g⋆=inf{tT1n:−ti≤yi−xiβ≤ti,t=(ti)∈Rn,β∈Rp,1≤i≤n},
minimizetT1nsubject toy−Xβ≤ty−Xβ≥−t.

Обратите внимание, что теперь является вектором длины вместо скаляра, как это было в случае . п л ∞tnℓ∞

Сходство в этих двух проблемах и тот факт, что они оба могут быть разыграны как LP, конечно, не случайны. Две нормы связаны в том, что они являются двойственными нормами друг друга.


Как бы вы нашли некоторую меру точности для параметров и / или прогнозов? Я спрашиваю из-за следующего недавнего вопроса: mathematica.stackexchange.com/questions/214226/… .
— ДжимБ

3

Малаб может сделать это, используя cvx. получить cvx (бесплатно):

http://cvxr.com/cvx/download/

В cvx вы бы написали это так:

cvx_begin
   variable x(n);
   minimize( norm(A*x-b,Inf) );
cvx_end

(см. пример на странице 12 руководства )

Существует реализация Python для CVX ( здесь ), но команды немного отличаются ...


1

Ответ @ cardinal хорошо сформулирован и принят, но ради полного закрытия этой темы я предлагаю следующее: Числовые библиотеки IMSL содержат процедуру для выполнения регрессии нормы L-бесконечности. Процедура доступна на Фортране, C, Java, C # и Python. Я использовал версии C и Python, для которых этот метод называется lnorm_regression, который также поддерживает общую регрессию -norm, . p > = 1Lpp>=1

Обратите внимание, что это коммерческие библиотеки, но версии Python бесплатны (как в пиве) для некоммерческого использования.


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