Czy istnieje jakiś pakiet oprogramowania do rozwiązania regresji liniowej w celu zminimalizowania normy L-nieskończoności.
regression
Fan Zhang
źródło
źródło
Odpowiedzi:
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 .
Kluczem do przekształcenia tego jako LP jest przepisanie problemu w formie epigraficznej . Nie jest trudno przekonać się, że w rzeczywistości
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 ,fa ℓ ∞ minimalizuj t z zastrzeżeniem y - X β ≤ t 1 n
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ℓ1 sol( β) = ∥ y - X β∥1
Zauważ, że jest teraz wektorem długości zamiast skalara, tak jak to było w przypadku .t n ℓ∞
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 .
źródło
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:
(patrz przykładowa strona 12 instrukcji )
Istnieje implementacja CVX w Pythonie ( tutaj ), ale polecenia są nieco inne ...
źródło
Zauważ, że są to biblioteki komercyjne, ale wersje Pythona są bezpłatne (jak w piwie) do użytku niekomercyjnego.
źródło