Porównanie regresji liniowej i logistycznej

Discussion on an entry level data science interview question

Wywiady Data Science różnią się pod względem głębokości. Niektóre rozmowy kwalifikacyjne są naprawdę głębokie i sprawdzają kandydatów pod kątem znajomości zaawansowanych modeli lub skomplikowanego dostrajania. Jednak wiele rozmów kwalifikacyjnych przeprowadza się na poziomie podstawowym, starając się sprawdzić podstawową wiedzę kandydata. W tym artykule zobaczymy pytanie, które można omówić w takim wywiadzie. Chociaż pytanie jest bardzo proste, dyskusja porusza wiele interesujących aspektów podstaw uczenia maszynowego.

Pytanie: Jaka jest różnica między regresją liniową a regresją logistyczną?

W rzeczywistości istnieje wiele podobieństw między nimi, poczynając od faktu, że ich imiona są bardzo podobnie brzmiące. Oba używają linii jako funkcji modelu. Ich wykresy też wyglądają bardzo podobnie.

Zdjęcie autora

Ale pomimo tych podobieństw, różnią się one bardzo zarówno pod względem metody, jak i zastosowania. Podkreślimy teraz te różnice. Dla porównania użyjemy następujących punktów, które są ogólnie brane pod uwagę podczas omawiania dowolnego modelu uczenia maszynowego:

  • Hipoteza lub rodzina modelowa
  • Wejście i wyjście
  • Funkcja utraty
  • Technika optymalizacji
  • Zastosowanie

Teraz porównamy regresję liniową (LinReg) i regresję logistyczną (LogReg) w każdym z tych punktów. Zacznijmy od aplikacji, aby skierować dyskusję na właściwe tory.

Image by Rajashree Rajadhyax

Regresja liniowa służy do szacowania wielkości na podstawie innych wielkości. Jako przykład wyobraź sobie, że jako student prowadzisz stoisko z lemoniadą podczas letnich wakacji. Chcesz dowiedzieć się, ile szklanek lemoniady zostanie jutro sprzedanych, abyś mógł kupić wystarczającą ilość cytryn i cukru. Ze swojego wieloletniego doświadczenia w sprzedaży lemoniady doszedłeś do wniosku, że sprzedaż ma silny związek z maksymalną temperaturą w ciągu dnia. Więc chcesz użyć przewidywanej maksymalnej temperatury, aby przewidzieć sprzedaż lemoniady. Jest to klasyczna aplikacja LinReg, ogólnie nazywana predykcją w literaturze ML.

LinReg jest również używany, aby dowiedzieć się, jak określone dane wejściowe wpływają na dane wyjściowe. W przykładzie stoiska z lemoniadą załóżmy, że masz dwa dane wejściowe — maksymalną temperaturę i to, czy dzień jest świętem. Chcesz dowiedzieć się, co bardziej wpływa na sprzedaż — maksymalna temperatura czy wakacje. LinReg będzie przydatny w identyfikacji tego.

LogReg jest używany głównie do klasyfikacji. Klasyfikacja to akt kategoryzacji danych wejściowych do jednego z wielu możliwych koszyków. Klasyfikacja jest tak ważna dla ludzkiej inteligencji, że nie byłoby błędem powiedzieć, że „większość inteligencji to klasyfikacja”. Dobrym przykładem klasyfikacji jest diagnoza kliniczna. Pomyśl o starszym, godnym zaufania lekarzu rodzinnym. Wchodzi kobieta i skarży się na nieustanny kaszel. Lekarz przeprowadza różne badania, aby wybrać spośród wielu możliwych warunków. Niektóre możliwe stany są względnie nieszkodliwe, jak na przykład infekcja gardła. Ale niektóre są poważne, takie jak gruźlica, a nawet rak płuc. Na podstawie różnych czynników lekarz decyduje na co cierpi i rozpoczyna odpowiednie leczenie. To jest klasyfikacja w pracy.

Musimy pamiętać, że zarówno szacowanie, jak i klasyfikacja to raczej zadania zgadywania niż obliczenia. W tego typu zadaniach nie ma dokładnej ani poprawnej odpowiedzi. Zadania polegające na zgadywaniu są tym, w czym systemy uczenia maszynowego są dobre.

Systemy ML rozwiązują problemy ze zgadywaniem poprzez wykrywanie wzorców. Wykrywają wzór z podanych danych, a następnie wykorzystują go do wykonania zadania, takiego jak oszacowanie lub klasyfikacja. Ważnym wzorcem występującym w zjawiskach naturalnych jest wzorzec relacji. W tym wzorze jedna wielkość jest powiązana z drugą wielkością. W większości przypadków zależność tę można przybliżyć za pomocą funkcji matematycznej.

Identyfikacja funkcji matematycznej na podstawie danych nazywana jest „uczeniem się” lub „treningiem”. Są dwa etapy nauki:

  1. „Typ” funkcji (np. liniowa, wykładnicza, wielomianowa) jest wybierany przez człowieka
  2. Algorytm uczenia się uczy się parametrów (takich jak nachylenie i punkt przecięcia linii) z podanych danych.

Kiedy więc mówimy, że systemy ML uczą się na podstawie danych, jest to tylko częściowo prawdziwe. Pierwszy krok wyboru typu funkcji jest ręczny i stanowi część projektu modelu. Typ funkcji jest również nazywany „hipotezą” lub „rodziną modeli”.

Zarówno w LinReg, jak i LogReg rodzina modeli jest funkcją liniową. Jak wiesz, linia ma dwa parametry — nachylenie i punkt przecięcia. Ale jest to prawdą tylko wtedy, gdy funkcja przyjmuje tylko jedno wejście. W przypadku większości rzeczywistych problemów istnieje więcej niż jedno wejście. Funkcja modelu dla tych przypadków jest nazywana funkcją liniową, a nie linią. Funkcja liniowa ma więcej parametrów do nauczenia. Jeśli do modelu jest n danych wejściowych, funkcja liniowa ma n+1 parametrów. Jak wspomniano, parametry te są pobierane z podanych danych. Na potrzeby tego artykułu będziemy nadal zakładać, że funkcja jest prostą linią z dwoma parametrami. Funkcja modelu dla LogReg jest nieco bardziej złożona. Linia jest, ale jest połączona z inną funkcją. Zobaczymy to za chwilę.

Jak powiedzieliśmy powyżej, zarówno LinReg, jak i LogReg uczą się parametrów funkcji liniowej z danych, zwanych danymi treningowymi. Co zawierają dane treningowe?

Dane treningowe są przygotowywane poprzez rejestrację niektórych zjawisk świata rzeczywistego (RWP). Na przykład relacja między maksymalną temperaturą dnia a sprzedażą lemoniady to RWP. Nie mamy wglądu w podstawową relację. Wszystko, co możemy zobaczyć, to wartości temperatury i wyprzedaży każdego dnia. Rejestrując obserwacje, niektóre wielkości wyznaczamy jako wejścia RWP, a inne jako wyjścia. W przykładzie z lemoniadą nazywamy maksymalną temperaturę jako dane wejściowe, a sprzedaż lemoniady jako dane wyjściowe.

Zdjęcie autora

Nasze dane szkoleniowe zawierają pary wejść i wyjść. W tym przykładzie dane będą zawierały wiersze maksymalnej dziennej temperatury i sprzedanych szklanek lemoniady. Takie będą dane wejściowe i wyjściowe do LinReg.

Zadaniem wykonywanym przez LogReg jest klasyfikacja, więc jego wyjściem powinna być klasa. Wyobraźmy sobie, że istnieją dwie klasy o nazwach 0 i 1. Dane wyjściowe modelu również powinny mieć wartość 0 lub 1.

Jednak ta metoda określania danych wyjściowych nie jest zbyt trafna. Zobacz poniższy diagram:

Zdjęcie autora

Punkty zaznaczone na żółto należą do klasy 1, a jasnoniebieskie do klasy 0. Linia to nasza modelowa funkcja oddzielająca te dwie klasy. Zgodnie z tym separatorem oba żółte punkty (a i b) należą do klasy 1 . Jednak przynależność punktu b jest znacznie bardziej pewna niż przynależność punktu a. Jeśli model po prostu wyprowadza 0 i 1, to ten fakt jest stracony.

Aby poprawić tę sytuację, model LogReg generuje prawdopodobieństwo przynależności każdego punktu do określonej klasy. W powyższym przykładzie prawdopodobieństwo przynależności punktu „a” do klasy 1 jest niskie, podczas gdy prawdopodobieństwo przynależności punktu „b” jest wysokie. Ponieważ prawdopodobieństwo jest liczbą z przedziału od 0 do 1, tak samo jest z wynikiem LogReg.

Teraz spójrz na poniższy diagram:

Zdjęcie autora

Ten schemat jest taki sam jak poprzedni, z dodanym punktem c. Ten punkt również należy do klasy 1 i faktycznie jest bardziej pewny niż punkt b. Jednak błędem byłoby zwiększanie prawdopodobieństwa punktu proporcjonalnie do jego odległości od linii. Intuicyjnie, gdy oddalimy się na pewną odległość od linii, jesteśmy mniej lub bardziej pewni przynależności tych punktów. Nie musimy dalej zwiększać prawdopodobieństwa. Jest to zgodne z naturą prawdopodobieństw, których maksymalna wartość może wynosić 1.

Aby model LogReg był w stanie wygenerować takie dane wyjściowe, funkcja liniowa musi być połączona z inną funkcją. Ta druga funkcja nazywa się sigmoidą i ma równanie:

Zatem model LogReg wygląda następująco:

Zdjęcie autora

Funkcja sigmoidalna jest również nazywana „logistyczną” i jest powodem nazwy „regresja logistyczna”.

Jeśli istnieją więcej niż dwie klasy, wyjściem LogReg jest wektor. Elementami wektora wyjściowego są prawdopodobieństwa, że ​​dane wejściowe należą do tej konkretnej klasy. Na przykład, jeśli pierwszy element modelu diagnozy klinicznej ma wartość 0.8, oznacza to, że model uważa, że ​​istnieje 80% prawdopodobieństwo wystąpienia u pacjenta przeziębienia.

Widzieliśmy, że zarówno LinReg, jak i LogReg uczą się parametrów funkcji liniowej z danych treningowych. Jak uczą się tych parametrów?

Używają metody zwanej „optymalizacją”. Optymalizacja polega na generowaniu wielu możliwych rozwiązań danego problemu. W naszym przypadku możliwymi rozwiązaniami są zbiory wartości (nachylenie, wyraz wolny). Oceniamy każde z tych rozwiązań za pomocą miernika wydajności. Ostatecznie wybierane jest rozwiązanie, które okaże się najlepsze pod tym względem.

W nauce modeli ML miara wydajności jest czasami nazywana „stratą”, a funkcja, która pomaga nam ją obliczyć, nazywa się „funkcją straty”. Możemy to przedstawić jako:

Loss = Loss_Function (Parameters_being_evaluated)

Terminy „strata” i „funkcja straty” mają konotację negatywną, co oznacza, że ​​mniejsza wartość straty wskazuje na lepsze rozwiązanie. Innymi słowy, uczenie się jest optymalizacją mającą na celu znalezienie parametrów, które powodują minimalną stratę.

Zobaczymy teraz typowe funkcje strat używane do optymalizacji LinReg i LogReg. Należy zauważyć, że w praktyce stosuje się wiele różnych funkcji strat, więc możemy omówić te, które są najczęstsze.

W celu optymalizacji parametrów LinReg najczęstszą funkcją strat jest nazywana błędem sumy kwadratów (SSE). Ta funkcja przyjmuje następujące dane wejściowe:

1) Wszystkie punkty danych treningowych. Dla każdego punktu określamy:

a) dane wejściowe, takie jak maksymalna temperatura danych,

b) wyjścia, takie jak liczba sprzedanych szklanek lemoniady

2) Równanie liniowe z parametrami

Następnie funkcja oblicza stratę przy użyciu następującego wzoru:

SSE Loss = Sum_for_all_points(
Square_of(
output_of_linear_equation_for_the_inputs — actual_output_from_the_data point
))

Miara optymalizacji dla LogReg jest definiowana w zupełnie inny sposób. W funkcji SSE zadajemy następujące pytanie:

If we use this line for fitting the training data, how much error will it make?

Projektując miarę do optymalizacji LogReg, prosimy o:

If this line is the separator, how likely is it that we will get the distribution of classes that is seen in the training data?

Wynik tej miary jest więc prawdopodobieństwem. Matematyczna postać funkcji miary wykorzystuje logarytmy, stąd jej nazwa Log Likelihood (LL). Omawiając wyniki, zauważyliśmy, że funkcja LogReg obejmuje wyrażenia wykładnicze (wyrażenia z e „podniesione do” z). Logarytmy pomagają skutecznie radzić sobie z tymi wykładnikami.

Intuicyjnie powinno być dla Ciebie jasne, że optymalizacja powinna maksymalizować LL. Pomyśl w ten sposób: chcemy znaleźć linię, która sprawia, że ​​dane uczące są najbardziej prawdopodobne. W praktyce jednak preferujemy miarę, którą można zminimalizować, więc po prostu przyjmujemy ujemną wartość LL. W ten sposób otrzymujemy funkcję straty Negative Log Likelihood (NLL), chociaż według mnie nazywanie jej funkcją straty nie jest zbyt poprawne.

Mamy więc dwie funkcje strat: SSE dla LinReg i NLL dla LogReg. Zauważ, że te funkcje straty mają wiele nazw i powinieneś zapoznać się z terminami.

Chociaż regresja liniowa i regresja logistyczna wyglądają i brzmią bardzo podobnie, w rzeczywistości są zupełnie inne. LinReg służy do szacowania/przewidywania, a LogReg do klasyfikacji. Prawdą jest, że oba wykorzystują funkcję liniową jako podstawę, ale LogReg dodatkowo dodaje funkcję logistyczną. Różnią się sposobem, w jaki konsumują dane treningowe i generują dane wyjściowe modelu. Obaj używają również bardzo różnej funkcji straty.

Dalsze szczegóły można zbadać. Dlaczego SSE? Jak oblicza się prawdopodobieństwo? Nie zagłębialiśmy się tutaj w metodę optymalizacji, aby uniknąć dodatkowej matematyki. Należy jednak pamiętać, że optymalizacja LogReg zwykle wymaga iteracyjnej metody opadania gradientu, podczas gdy LinReg zwykle może wykonać szybkie rozwiązanie w postaci zamkniętej. Te i inne kwestie możemy omówić w innym artykule.

Comparing Linear and Logistic Regression Republished from Source https://towardsdatascience.com/comparing-linear-and-logistic-regression-11a3e1812212?source=rss—-7f60cf5620c9—4 via https://towardsdatascience.com/feed

<!–

->

Znak czasu:

Więcej z Konsultanci Blockchain