Чи є пакет програм для вирішення лінійної регресії з метою мінімізації норми L-нескінченності.
Чи є пакет програм для вирішення лінійної регресії з метою мінімізації норми L-нескінченності.
Відповіді:
Коротка відповідь : Ваша проблема може бути сформульована як лінійна програма (LP), залишаючи вам вибрати свій улюблений вирішувач LP для виконання завдання. Щоб побачити, як написати проблему як LP, читайте далі.
Цю проблему мінімізації часто називають наближенням Чебишева .
Нехай , з рядком позначається та . Тоді ми прагнемо мінімізувати функцію щодо . Позначимо оптимальне значення β f ⋆ = f ( β ⋆ ) = inf { f ( β ) : β ∈ R p }
Ключовим фактором для переробки цього формату LP є переписання проблеми у формі епіграфа . Переконати себе не важко, що насправді
Тепер, використовуючи визначення функції , ми можемо переписати праву частину вище як і тому ми бачимо, що мінімізація норми в налаштуваннях регресії еквівалентна LP де проводиться оптимізація над , і позначають вектор довжини . Я залишаю це (легке) вправу для читача, щоб переробити вищезгаданий LP у стандартній формі.f ⋆ = inf { t : - t ≤ y i - x i β ≤ t ,ℓ ∞ мінімізувати t за умови y - X β ≤ t 1 n
Зв'язок з версією (загальна варіація) лінійної регресії
Цікаво зазначити, що щось дуже схоже можна зробити за допомогою норми . Нехай . Потім подібні аргументи призводять до висновку, що щоб відповідний LP був мінімізуйте t T 1 n за умови у - X β ≤ t
Зауважимо тут, що тепер вектор довжини замість скаляра, як це було у випадку . n ℓ ∞
Подібність у цих двох проблемах та те, що вони можуть бути представлені як LP, - це, звичайно, не випадково. Дві норми пов'язані тим, що вони є подвійними нормами один одного.
@ відповідь кардинала чітко викладена і була прийнята, але, щоб повністю закрити цю тему, я запропоную наступне: Числові бібліотеки IMSL містять процедуру виконання регресії норми L-нескінченності. Програма доступна у Fortran, C, Java, C # та Python. Я використовував версії C і Python, для яких метод називається lnorm_regression, який також підтримує загальну -norm регресію, . p > = 1
Зауважте, що це комерційні бібліотеки, але версії Python безкоштовні (як у пиві) для некомерційного використання.