Wprowadzenie regresja liniowa vs. Regresja logistyczna

Wprowadzenie regresja liniowa vs. Regresja logistyczna
Chociaż uczenie maszynowe nie jest nowe, jest teraz więcej danych niż kiedykolwiek wcześniej, przyczynia się do jego najnowszej popularności. Przyjrzymy się dwóm popularnym algorytmom uczenia maszynowego: regresji liniowej i regresji logistycznej z matematyką i implementacją.

Co to jest regresja liniowa?

Regresja liniowa jest prostym, ale skutecznym nadzorowanym algorytmem uczenia maszynowego do przewidywania zmiennych ciągłych. Regresja liniowa ma na celu ustalenie, w jaki sposób zmienna wejściowa (zmienna objaśniająca) zmienia się od zmiennej wyjściowej (zmienna odpowiedzi). Wiele zaawansowanych nadzorowanych algorytmów uczenia maszynowego opiera się na koncepcjach regresji liniowej. Regresja liniowa jest powszechnie stosowana w problemach z uczeniem maszynowym do przewidywania zmiennych ciągłych, w których zmienne docelowe i cechy mają związek liniowy.

Poniżej znajdują się główne elementy prostej regresji liniowej: ciągła zmienna wejściowa, zmienna ciągłej odpowiedzi i założenia regresji liniowej są spełnione.

Założenia regresji liniowej:

  1. Zmienne wejściowe (x) mają liniową zależność ze zmienną docelową (y). Ponadto współczynniki zmiennej wejściowej nie powinny być ze sobą skorelowane.
  2. Termin błędu jest dystrybuowany jednakowo około 0, więc oczekiwana wartość terminu błędu wynosi e (e) = 0.

Jak działa regresja liniowa?

Model regresji liniowej próbuje dopasować linię, która przechodzi przez najbardziej znaczącą liczbę punktów przy jednoczesnym minimalizowaniu kwadratowej odległości (funkcji kosztu) punktów do dopasowanych wartości linii, biorąc pod uwagę zestaw danych wejściowych punktów danych (x) i odpowiedzi (y).

W rezultacie funkcja kosztów jest ostatecznie minimalizowana. Funkcja kosztów regresji liniowej jest zwykle Średni błąd kwadratowy:

Równanie regresji jest napisane jako y = β1X + βo.

Termin C reprezentuje przechwytywanie, M reprezentuje nachylenie linii regresji, x reprezentuje zmienną wejściową, a Y reprezentuje przewidywaną wartość zmiennej odpowiedzi.

Z podstawowej matematyki wiemy, że linia prosta jest identyfikowana przez dwa parametry: nachylenie i przechwytywanie. Algorytm regresji liniowej wybiera niektóre początkowe parametry i stale aktualizuje je, aby zminimalizować odchylenie standardowe. Poniżej znajduje się obraz przedstawiający linię regresji (niebieski), odchylenia (zielone) i punkty danych (czerwone).

Regresję liniową można również rozszerzyć na wiele zmiennych wejściowych, a podejście pozostaje dokładnie takie samo. Równanie linii dla wielu zmiennych jest reprezentowane przez:

Demo o regresji liniowej

Przewidujmy zmienną docelową za pomocą pojedynczej zmiennej wejściowej. Poniższy przykład i zestaw danych pochodzą z scikit-learn Oficjalna dokumentacja. Scikit-Learn to powszechnie używana biblioteka do opracowywania modeli uczenia maszynowego.

importować matplotlib.Pyplot as Plt
importować Numpy jako NP
Z zestawów danych Import Sklearn, Linear_model
ze Sklearn.Wskaźniki importuj Mean_squared_error, R2_Score
# Załaduj zestaw danych cukrzycy
Diabetes_X, Diabetes_Y = Zestawy danych.load_diabetes (return_x_y = true)
# Użyj tylko jednej funkcji
Diabetes_X = Diabetes_X [:, NP.Newaxis, 2]
# Podziel dane na zestawy szkoleniowe/testowe
Diabetes_x_train = Diabetes_X [:-20]
Diabetes_x_test = Diabetes_X [-20:]
# Podziel cele na zestawy szkoleniowe/testowe
Diabetes_y_train = Diabetes_Y [:-20]
Diabetes_Y_TEST = Diabetes_Y [-20:]
# Utwórz obiekt regresji liniowej
żal = Linear_model.LinearreGression ()
# Trenuj model za pomocą zestawów treningowych
żal.Fit (Diabetes_X_Train, Diabetes_Y_Train)
# Dokonaj prognoz przy użyciu zestawu testów
Diabetes_y_pred = żal.przewidy (Diabetes_X_Test)
# Średni błąd kwadratowy
Drukuj („średnia kwadratowa błąd: %.2f " % Mean_squared_error (Diabetes_Y_Test, Diabetes_Y_PRed))

Wyjście

Średni błąd kwadratowy: 2548.07

Co to jest regresja logistyczna?

Regresja logistyczna jest algorytmem klasyfikacji. Jest to algorytm decyzyjny, co oznacza, że ​​poszukuje granic między dwiema klasami i symuluje prawdopodobieństwo jednej klasy. Ponieważ dane wejściowe jest dyskretne i może przyjmować dwie wartości, jest zwykle używane do klasyfikacji binarnej.

Zmienna docelowa w regresji liniowej jest ciągła, co oznacza, że ​​może przyjmować dowolną wartość liczby rzeczywistej, podczas gdy w regresji logistycznej chcemy, aby nasze dane wyjściowe były prawdopodobieństwa (od 0 do 1). Regresja logistyczna pochodzi z regresji liniowej, ale dodaje dodatkową warstwę funkcji sigmoidalnej, aby upewnić się, że wyjście pozostanie od 0 do 1.

Jak działa regresja logistyczna?

Regresja logistyczna jest prostym i szeroko stosowanym algorytmem uczenia maszynowego, szczególnie w przypadku problemów z klasyfikacją binarną. To rozszerzenie algorytmu regresji liniowej wykorzystuje funkcję aktywacji sigmoidów, aby ograniczyć zmienną wyjściową między 0 a 1. Załóżmy, że musimy zbudować model uczenia maszynowego, wówczas każdy niezależny punkt danych zmiennej będzie x1 * w1 + x2 * w2… i tak dalej, a to da wartość od 0 do 1, gdy zostanie przekazana przez funkcję aktywacji, jeśli użyjemy 0.50 jako wartość decydująca lub próg. Następnie dowolny wynik większy niż 0.5 jest uważane za 1, a dowolny wynik mniejszy niż jest uważany za 0. Funkcja aktywacji sigmoidów jest reprezentowana jako:

Z wykresu widzimy, że zmienna wyjściowa jest ograniczona między 0 a 1.

W scenariuszach więcej niż dwóch klas używamy jednego vs. Wszystkie podejście do klasyfikacji. Rozdzielenie zestawu danych wieloklasowych na wiele problemów z klasyfikacją binarną jest tym, co jeden vs. Odpoczynek dotyczy.

W przypadku każdego problemu klasyfikacji binarnej szkolony jest klasyfikator binarny, a prognozy są dokonywane przy użyciu modelu z najwyższym zaufaniem.

Wdrażanie regresji logistycznej

Poniżej znajduje się scenariusz z oficjalnej dokumentacji Scikit-Learn do klasyfikacji kwiatu tęczówki na podstawie różnych funkcji.

>>> ze Sklearn.Zestawy danych Importuj Load_Iris
>>> ze Sklearn.logistyka logistyczna Linear_Model
>>> x, y = load_iris (return_x_y = true)
>>> clf = logisticreGression (Random_State = 0).Fit (x, y)
>>> CLF.Przewiduj (x [: 2,:])
tablica ([0, 0])
>>> CLF.PREDICT_PROBA (x [: 2,:])
tablica [[[9.8… e-01, 1.8… e-02, 1.4… e-08],
[9.7… E-01, 2.8… e-02,… e-08]])
>>> CLF.wynik (x, y)
0.97…

Wniosek

Przeszliśmy wprowadzenie regresji logistycznej i liniowej, omówiliśmy zaangażowaną matematykę i przeszliśmy część wdrażania każdego z nich. Możemy stwierdzić, że regresja liniowa pomaga przewidzieć zmienne ciągłe, podczas gdy regresja logistyczna jest stosowana w przypadku dyskretnych zmiennych docelowych. Regresja logistyczna robi to poprzez zastosowanie funkcji aktywacji sigmoidalnej na równanie regresji liniowej.