Существует ли какой-либо программный пакет для решения линейной регрессии с целью минимизации нормы L-бесконечности.
regression
Фан Чжан
источник
источник
Ответы:
Краткий ответ : Ваша проблема может быть сформулирована как линейная программа (LP), позволяя вам выбрать свой любимый решатель LP для этой задачи. Чтобы узнать, как записать проблему в виде LP, читайте дальше.
Эту проблему минимизации часто называют чебышевским приближением .
Пусть , со строкой обозначенной и . Затем мы стремимся минимизировать функцию относительно . Обозначим оптимальное значение черезу =( уя) ∈ RN X ∈ Rn × p я Икся β∈ Rп е( β) = ∥ y - X β∥∞ β
Ключ к преобразованию этого в LP - переписать проблему в форме эпиграфа . Нетрудно убедить себя, что на самом деле
Теперь, используя определение функции , мы можем переписать правую часть выше как и мы видим, что минимизация нормы в настройке регрессии эквивалентна LP где выполняется оптимизация через , а обозначает вектор единиц длины . Я оставляю читателю в качестве (простого) упражнения переписать вышеуказанный LP в стандартной форме.f ⋆ = inf { t : - t ≤ y i - x i β ≤ t ,е ℓ ∞ свести к минимуму т подлежащего у - Х & beta ; & le ; т 1 н
Связь с версией линейной регрессии (полная вариация)ℓ1
Интересно отметить, что нечто очень похожее можно сделать с нормы . Пусть . Затем аналогичные аргументы приводят к выводу, что так что соответствующий LP является г ( & beta ; ) = | | у - Х & beta ; | | 1 г ⋆ = инф { т Т 1 п : - т я ≤ у я - х я & beta ; ≤ т я ,ℓ1 g(β)=∥y−Xβ∥1 Свести к минимуму т Т 1 л при условии у - Х & beta ; & le ; т
Обратите внимание, что теперь является вектором длины вместо скаляра, как это было в случае . п л ∞t n ℓ∞
Сходство в этих двух проблемах и тот факт, что они оба могут быть разыграны как LP, конечно, не случайны. Две нормы связаны в том, что они являются двойственными нормами друг друга.
источник
Малаб может сделать это, используя cvx. получить cvx (бесплатно):
http://cvxr.com/cvx/download/
В cvx вы бы написали это так:
(см. пример на странице 12 руководства )
Существует реализация Python для CVX ( здесь ), но команды немного отличаются ...
источник
Ответ @ cardinal хорошо сформулирован и принят, но ради полного закрытия этой темы я предлагаю следующее: Числовые библиотеки IMSL содержат процедуру для выполнения регрессии нормы L-бесконечности. Процедура доступна на Фортране, C, Java, C # и Python. Я использовал версии C и Python, для которых этот метод называется lnorm_regression, который также поддерживает общую регрессию -norm, . p > = 1Lp p>=1
Обратите внимание, что это коммерческие библиотеки, но версии Python бесплатны (как в пиве) для некоммерческого использования.
источник