Pakiet oprogramowania do rozwiązania regresji liniowej normy L-infinity

10

Czy istnieje jakiś pakiet oprogramowania do rozwiązania regresji liniowej w celu zminimalizowania normy L-nieskończoności.

Fan Zhang
źródło
Cóż, każdy pakiet programowania liniowego działałby. To daje ci wiele opcji. :)
kardynał
1
@Cardinal Jak przekształciłbyś to jako program liniowy? Nie jest oczywiste, jak to zrobić, nawet w trywialnych przypadkach (takich jak dwa punkty danych i jeden parametr): nie ma żadnych ograniczeń, a funkcja celu jest nieliniowa.
whuber
Fraza kluczowa : zbliżenie Czebyszewa. (Więcej do naśladowania. Pomysł polega na wprowadzeniu dodatkowej zmiennej, a następnie przekształceniu celu w ograniczenia.)
kardynał
@cardinal Masz na myśli to: mathworld.wolfram.com/ChebyshevApproximationFormula.html Wydaje się to dość skomplikowane.
Fan Zhang
Cóż, jest to trochę związane, ale nie związane z tym problemem. Twój problem można rozwiązać za pomocą prostego LP. Jak tylko będę mógł dostać się do komputera, opublikuję odpowiedź.
kardynał

Odpowiedzi:

17

Krótka odpowiedź : Twój problem można sformułować jako program liniowy (LP), dzięki czemu możesz wybrać swój ulubiony solver LP do zadania. Aby zobaczyć, jak napisać problem jako LP, czytaj dalej.

Ten problem minimalizacji jest często określany jako przybliżenie Czebyszewa .

y=(yi)RnXRn×pixiβRpfa(β)=y-Xββ

fa=fa(β)=inf{fa(β):βRp}.

Kluczem do przekształcenia tego jako LP jest przepisanie problemu w formie epigraficznej . Nie jest trudno przekonać się, że w rzeczywistości

fa=inf{t:fa(β)t,tR,βRp}.

Teraz, korzystając z definicji funkcji , możemy przepisać prawą stronę powyżej jako a więc widzimy, że minimalizowanie normy w ustawieniu regresji jest równoważne LP gdzie przeprowadzana jest optymalizacja over , a oznacza wektor jedności o długości . Pozostawiam to (łatwe) ćwiczenie dla czytelnika, aby przekształcić powyższy LP w standardowej formie.f = inf { t : - t y i - x i βt ,faminimalizuj t z zastrzeżeniem y - X βt 1 n

fa=inf{t:-tyja-xjaβt,tR,βRp,1jan},
(β,t)1nn
zminimalizowaćtz zastrzeżeniemy-Xβt1ny-Xβ-t1n,
(β,t)1nn

Związek z wersją regresji liniowej (całkowita zmienność)1

Warto zauważyć, że coś bardzo podobnego można zrobić za pomocą normy . Niech . Następnie podobne argumenty prowadzą do wniosku, że więc odpowiedni LP to 1sol(β)=y-Xβ1

sol=inf{tT.1n:-tjayja-xjaβtja,t=(tja)Rn,βRp,1jan},
zminimalizowaćtT.1nz zastrzeżeniemy-Xβty-Xβ-t.

Zauważ, że jest teraz wektorem długości zamiast skalara, tak jak to było w przypadku .tn

Podobieństwo tych dwóch problemów i fakt, że można je obsadzić jako płyty LP, oczywiście nie jest przypadkiem. Dwie normy są ze sobą powiązane, ponieważ są one podwójnymi normami .

kardynał
źródło
Jak znalazłbyś miarę precyzji parametrów i / lub prognoz? Pytam, ponieważ należy do ostatniego pytania: mathematica.stackexchange.com/questions/214226/... .
JimB
3

Malab może to zrobić za pomocą CVX. aby uzyskać cvx (bezpłatny):

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

W cvx napisałbyś to w ten sposób:

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

(patrz przykładowa strona 12 instrukcji )

Istnieje implementacja CVX w Pythonie ( tutaj ), ale polecenia są nieco inne ...

użytkownik603
źródło
1

L.pp> =1

Zauważ, że są to biblioteki komercyjne, ale wersje Pythona są bezpłatne (jak w piwie) do użytku niekomercyjnego.

Josh Hemann
źródło
Niestety, link już nie działa. Czy możesz to zaktualizować?
COOLSerdash,