logo

Regresja liniowa w uczeniu maszynowym

Nauczanie maszynowe to gałąź sztucznej inteligencji, która koncentruje się na opracowywaniu algorytmów i modeli statystycznych, które mogą uczyć się i przewidywać dane. Regresja liniowa jest także rodzajem algorytmu uczenia maszynowego, a dokładniej a nadzorowany algorytm uczenia maszynowego który uczy się na podstawie oznaczonych zbiorów danych i odwzorowuje punkty danych na najbardziej zoptymalizowane funkcje liniowe. które można wykorzystać do przewidywania nowych zbiorów danych.

Na początek powinniśmy wiedzieć, czym są algorytmy nadzorowanego uczenia maszynowego. Jest to rodzaj uczenia maszynowego, w którym algorytm uczy się na podstawie oznakowanych danych. Oznaczone dane oznaczają zbiór danych, którego odpowiednia wartość docelowa jest już znana. Uczenie się nadzorowane ma dwa rodzaje:

  • Klasyfikacja : Przewiduje klasę zbioru danych na podstawie niezależnej zmiennej wejściowej. Klasa to wartości kategoryczne lub dyskretne. jak obraz zwierzęcia to kot czy pies?
  • Regresja : Przewiduje ciągłe zmienne wyjściowe w oparciu o niezależną zmienną wejściową. jak przewidywanie cen domów na podstawie różnych parametrów, takich jak wiek domu, odległość od głównej drogi, lokalizacja, powierzchnia itp.

Tutaj omówimy jeden z najprostszych typów regresji, tj. Regresja liniowa.



Spis treści

Co to jest regresja liniowa?

Regresja liniowa jest rodzajem nadzorowane uczenie maszynowe algorytm obliczający liniową zależność między zmienną zależną a jedną lub większą liczbą niezależnych cech poprzez dopasowanie równania liniowego do obserwowanych danych.

Kiedy istnieje tylko jedna niezależna funkcja, nazywa się ją Prosta regresja liniowa , a gdy istnieje więcej niż jedna funkcja, jest to tzw Wielokrotna regresja liniowa .

Podobnie, gdy istnieje tylko jedna zmienna zależna, jest ona brana pod uwagę Jednowymiarowa regresja liniowa , natomiast gdy istnieje więcej niż jedna zmienna zależna, nazywa się to Regresja wieloczynnikowa .

Dlaczego regresja liniowa jest ważna?

Znaczącą zaletą jest możliwość interpretacji regresji liniowej. Równanie modelu zapewnia jasne współczynniki wyjaśniające wpływ każdej zmiennej niezależnej na zmienną zależną, ułatwiając głębsze zrozumienie leżącej u jej podstaw dynamiki. Jej prostota jest zaletą, ponieważ regresja liniowa jest przejrzysta, łatwa do wdrożenia i służy jako podstawowa koncepcja dla bardziej złożonych algorytmów.

Regresja liniowa nie jest jedynie narzędziem predykcyjnym; stanowi podstawę dla różnych zaawansowanych modeli. Techniki takie jak regularyzacja i maszyny wektorów nośnych czerpią inspirację z regresji liniowej, zwiększając jej użyteczność. Ponadto regresja liniowa jest podstawą testowania założeń, umożliwiając badaczom weryfikację kluczowych założeń dotyczących danych.

podciąg ciągu Java

Rodzaje regresji liniowej

Istnieją dwa główne typy regresji liniowej:

Prosta regresja liniowa

Jest to najprostsza forma regresji liniowej i obejmuje tylko jedną zmienną niezależną i jedną zmienną zależną. Równanie prostej regresji liniowej wygląda następująco:
y=eta_{0}+eta_{1}X
Gdzie:

  • Y jest zmienną zależną
  • X jest zmienną niezależną
  • β0 jest punktem przecięcia
  • β1 jest nachyleniem

Wielokrotna regresja liniowa

Dotyczy to więcej niż jednej zmiennej niezależnej i jednej zmiennej zależnej. Równanie wielokrotnej regresji liniowej wygląda następująco:
y=eta_{0}+eta_{1}X+eta_{2}X+………eta_{n}X
Gdzie:

  • Y jest zmienną zależną
  • X1, X2, …, Xp są zmiennymi niezależnymi
  • β0 jest punktem przecięcia
  • β1, β2, …, βn to nachylenia

Celem algorytmu jest znalezienie najlepsza linia dopasowania równanie, które może przewidzieć wartości na podstawie zmiennych niezależnych.

W regresji zestaw rekordów zawiera wartości X i Y, a wartości te służą do uczenia się funkcji, więc jeśli chcesz przewidzieć Y na podstawie nieznanego X, można użyć tej wyuczonej funkcji. W regresji musimy znaleźć wartość Y. Zatem wymagana jest funkcja, która przewiduje ciągłe Y w przypadku regresji, biorąc pod uwagę X jako niezależne cechy.

Jaka jest najlepsza linia Fit?

Naszym głównym celem podczas stosowania regresji liniowej jest zlokalizowanie linii najlepszego dopasowania, co oznacza, że ​​błąd między wartościami przewidywanymi i rzeczywistymi powinien być ograniczony do minimum. Najmniejszy błąd będzie w najlepiej dopasowanej linii.

Najlepsze równanie linii dopasowania zapewnia linię prostą reprezentującą związek między zmiennymi zależnymi i niezależnymi. Nachylenie linii wskazuje, jak bardzo zmienia się zmienna zależna przy jednostkowej zmianie zmiennej(-ek) niezależnych.

Bourne znowu skorupa
Regresja liniowa w uczeniu maszynowym

Regresja liniowa


Tutaj Y nazywa się zmienną zależną lub docelową, a X nazywa się zmienną niezależną, znaną również jako predyktor Y. Istnieje wiele typów funkcji lub modułów, których można użyć do regresji. Funkcja liniowa jest najprostszym typem funkcji. W tym przypadku X może oznaczać pojedynczą cechę lub wiele cech reprezentujących problem.

Regresja liniowa realizuje zadanie przewidzenia wartości zmiennej zależnej (y) na podstawie danej zmiennej niezależnej (x)). Stąd nazwa to regresja liniowa. Na powyższym rysunku X (wkład) to doświadczenie zawodowe, a Y (wynik) to wynagrodzenie danej osoby. Linia regresji jest linią najlepiej dopasowaną do naszego modelu.

Wykorzystujemy funkcję kosztu do obliczenia najlepszych wartości w celu uzyskania najlepszej linii dopasowania, ponieważ różne wartości wag lub współczynników linii dają różne linie regresji.

Funkcja hipotezy w regresji liniowej

Jak założyliśmy wcześniej, naszą cechą niezależną jest doświadczenie, czyli X, a odpowiednie wynagrodzenie Y jest zmienną zależną. Załóżmy, że istnieje liniowa zależność pomiędzy X i Y, wówczas wynagrodzenie można przewidzieć za pomocą:

hat{Y} = heta_1 + heta_2X

LUB

hat{y}_i = heta_1 + heta_2x_i

Tutaj,

  • y_i epsilon Y ;; (i= 1,2, cdots , n) są etykietami dla danych (uczenie nadzorowane)
  • x_i epsilon X ;; (i= 1,2, cdots , n) są niezależnymi wejściowymi danymi treningowymi (jednowymiarowa – jedna zmienna wejściowa (parametr))
  • hat{y_i} epsilon hat{Y} ;; (i= 1,2, cdots , n) to wartości przewidywane.

Model uzyskuje najlepszą linię dopasowania regresji poprzez znalezienie najlepszego θ1i θ2wartości.

  • I 1 : przechwycić
  • I 2 : współczynnik x

Kiedy już znajdziemy najlepsze θ1i θ2wartości, otrzymujemy linię najlepiej dopasowaną. Kiedy więc w końcu użyjemy naszego modelu do przewidywania, przewidzi on wartość y dla wartości wejściowej x.

Jak zaktualizować θ 1 i θ 2 wartości, aby uzyskać najlepiej dopasowaną linię?

Aby uzyskać najlepiej dopasowaną linię regresji, model ma na celu przewidzenie wartości docelowejhat{Y} tak, że różnica błędu pomiędzy wartością przewidywanąhat{Y} a prawdziwa wartość Y jest minimalna. Dlatego bardzo ważna jest aktualizacja θ1i θ2wartości, aby osiągnąć najlepszą wartość, która minimalizuje błąd między przewidywaną wartością y (pred) a prawdziwą wartością y (y).

minimizefrac{1}{n}sum_{i=1}^{n}(hat{y_i}-y_i)^2

Funkcja kosztu dla regresji liniowej

The funkcja kosztu albo funkcja straty to nic innego jak błąd lub różnica między wartością przewidywanąhat{Y} i prawdziwą wartość Y.

W regresji liniowej Średni błąd kwadratowy (MSE) stosowana jest funkcja kosztu, która oblicza średnią kwadratów błędów pomiędzy przewidywanymi wartościamihat{y}_i i rzeczywiste wartości{y}_i . Celem jest określenie optymalnych wartości wyrazu wolnego heta_1 oraz współczynnik cechy wejściowej heta_2 zapewnienie linii najlepiej dopasowanej dla danych punktów danych. Równanie liniowe wyrażające tę zależność tohat{y}_i = heta_1 + heta_2x_i .

Funkcję MSE można obliczyć jako:

ext{Cost function}(J) = frac{1}{n}sum_{n}^{i}(hat{y_i}-y_i)^2

Wykorzystując funkcję MSE, stosuje się iteracyjny proces opadania gradientu w celu aktualizacji wartości heta_1 & heta_2 . Zapewnia to zbieżność wartości MSE z globalnymi minimami, co oznacza najdokładniejsze dopasowanie linii regresji liniowej do zbioru danych.

Proces ten polega na ciągłym dostosowywaniu parametrów ( heta_1) i ( heta_2) w oparciu o gradienty obliczone na podstawie MSE. Ostatecznym wynikiem jest linia regresji liniowej, która minimalizuje całkowite kwadraty różnic między wartościami przewidywanymi i rzeczywistymi, zapewniając optymalną reprezentację podstawowej zależności w danych.

Zejście gradientowe dla regresji liniowej

Model regresji liniowej można wytrenować za pomocą algorytmu optymalizacji zejście gradientowe poprzez iteracyjną modyfikację parametrów modelu w celu zmniejszenia błąd średniokwadratowy (MSE) modelu na zbiorze danych szkoleniowych. Aby zaktualizować θ1i θ2wartości w celu zmniejszenia funkcji Kosztu (minimalizując wartość RMSE) i uzyskania linii najlepiej dopasowanej, w której model wykorzystuje gradient gradientu. Pomysł jest taki, aby zacząć od losowego θ1i θ2wartości, a następnie iteracyjnie aktualizuj wartości, osiągając minimalny koszt.

Gradient to nic innego jak pochodna, która definiuje wpływ funkcji na wyniki przy niewielkiej zmienności danych wejściowych.

wiek Ankity Lokhande

Zróżniczkujmy funkcję kosztu (J) ze względu na heta_1

egin {aligned} {J}’_{ heta_1} &=frac{partial J( heta_1, heta_2)}{partial heta_1} &= frac{partial}{partial heta_1} left[frac{1}{n} left(sum_{i=1}^{n}(hat{y}_i-y_i)^2 ight ) ight] &= frac{1}{n}left[sum_{i=1}^{n}2(hat{y}_i-y_i) left(frac{partial}{partial heta_1}(hat{y}_i-y_i) ight ) ight] &= frac{1}{n}left[sum_{i=1}^{n}2(hat{y}_i-y_i) left(frac{partial}{partial heta_1}( heta_1 + heta_2x_i-y_i) ight ) ight] &= frac{1}{n}left[sum_{i=1}^{n}2(hat{y}_i-y_i) left(1+0-0 ight ) ight] &= frac{1}{n}left[sum_{i=1}^{n}(hat{y}_i-y_i) left(2 ight ) ight] &= frac{2}{n}sum_{i=1}^{n}(hat{y}_i-y_i) end {aligned}

Zróżniczkujmy funkcję kosztu (J) ze względu na heta_2

egin {aligned} {J}’_{ heta_2} &=frac{partial J( heta_1, heta_2)}{partial heta_2} &= frac{partial}{partial heta_2} left[frac{1}{n} left(sum_{i=1}^{n}(hat{y}_i-y_i)^2 ight ) ight] &= frac{1}{n}left[sum_{i=1}^{n}2(hat{y}_i-y_i) left(frac{partial}{partial heta_2}(hat{y}_i-y_i) ight ) ight] &= frac{1}{n}left[sum_{i=1}^{n}2(hat{y}_i-y_i) left(frac{partial}{partial heta_2}( heta_1 + heta_2x_i-y_i) ight ) ight] &= frac{1}{n}left[sum_{i=1}^{n}2(hat{y}_i-y_i) left(0+x_i-0 ight ) ight] &= frac{1}{n}left[sum_{i=1}^{n}(hat{y}_i-y_i) left(2x_i ight ) ight] &= frac{2}{n}sum_{i=1}^{n}(hat{y}_i-y_i)cdot x_i end {aligned}

Celem regresji liniowej jest znalezienie współczynników równania liniowego, które najlepiej pasują do danych uczących. Poruszając się w kierunku ujemnego gradientu błędu średniokwadratowego w odniesieniu do współczynników, współczynniki można zmieniać. Odpowiedni punkt przecięcia i współczynnik X będzie wynosić jeślialpha jest szybkością uczenia się.

Zejście gradientowe

egin{aligned} heta_1 &= heta_1 – alpha left( {J}’_{ heta_1} ight) &= heta_1 -alpha left( frac{2}{n}sum_{i=1}^{n}(hat{y}_i-y_i) ight) end{aligned} egin{aligned} heta_2 &= heta_2 – alpha left({J}’_{ heta_2} ight) &= heta_2 – alpha left(frac{2}{n}sum_{i=1}^{n}(hat{y}_i-y_i)cdot x_i ight) end{aligned}

Założenia prostej regresji liniowej

Regresja liniowa jest potężnym narzędziem do zrozumienia i przewidywania zachowania zmiennej, jednak aby była dokładnym i niezawodnym rozwiązaniem, musi spełniać kilka warunków.

  1. Liniowość : Zmienne niezależne i zależne są ze sobą powiązane liniowo. Oznacza to, że zmiany zmiennej zależnej następują po zmianach zmiennych niezależnych w sposób liniowy. Oznacza to, że powinna istnieć linia prosta, którą można poprowadzić przez punkty danych. Jeśli zależność nie jest liniowa, wówczas regresja liniowa nie będzie dokładnym modelem.
  2. Niezależność : Obserwacje w zbiorze danych są od siebie niezależne. Oznacza to, że wartość zmiennej zależnej dla jednej obserwacji nie zależy od wartości zmiennej zależnej dla innej obserwacji. Jeżeli obserwacje nie są niezależne, wówczas regresja liniowa nie będzie dokładnym modelem.
  3. Homoscedastyczność : Na wszystkich poziomach zmiennych niezależnych wariancja błędów jest stała. Oznacza to, że ilość zmiennych niezależnych nie ma wpływu na wariancję błędów. Jeżeli wariancja reszt nie jest stała, wówczas regresja liniowa nie będzie dokładnym modelem.

    Homoscedastyczność w regresji liniowej

  4. Normalność : Reszty powinny mieć rozkład normalny. Oznacza to, że reszty powinny przebiegać po krzywej w kształcie dzwonu. Jeśli reszty nie mają rozkładu normalnego, regresja liniowa nie będzie dokładnym modelem.

Założenia wielokrotnej regresji liniowej

W przypadku wielokrotnej regresji liniowej obowiązują wszystkie cztery założenia prostej regresji liniowej. Oprócz tego poniżej kilka innych:

  1. Brak współliniowości : Nie ma wysokiej korelacji pomiędzy zmiennymi niezależnymi. Wskazuje to na niewielką lub żadną korelację pomiędzy zmiennymi niezależnymi. Wielokolinearność ma miejsce, gdy dwie lub więcej zmiennych niezależnych jest ze sobą silnie skorelowanych, co może utrudniać określenie indywidualnego wpływu każdej zmiennej na zmienną zależną. Jeśli występuje współliniowość, wówczas wielokrotna regresja liniowa nie będzie dokładnym modelem.
  2. Addytywność: W modelu założono, że wpływ zmian zmiennej predykcyjnej na zmienną odpowiedzi jest stały niezależnie od wartości pozostałych zmiennych. Z założenia tego wynika, że ​​pomiędzy zmiennymi nie zachodzi interakcja w ich wpływie na zmienną zależną.
  3. Wybór funkcji: W przypadku wielokrotnej regresji liniowej istotny jest staranny dobór zmiennych niezależnych, które zostaną uwzględnione w modelu. Uwzględnienie zmiennych nieistotnych lub zbędnych może prowadzić do nadmiernego dopasowania i komplikować interpretację modelu.
  4. Nadmierne dopasowanie: Nadmierne dopasowanie ma miejsce, gdy model jest zbyt ściśle dopasowany do danych uczących, wychwytując szum lub losowe wahania, które nie odzwierciedlają prawdziwej zależności między zmiennymi. Może to prowadzić do słabej wydajności generalizacji nowych, niewidocznych danych.

Wielowspółliniowość

Wielowspółliniowość to zjawisko statystyczne występujące, gdy dwie lub więcej zmiennych niezależnych w modelu regresji wielokrotnej są silnie skorelowane, co utrudnia ocenę indywidualnego wpływu każdej zmiennej na zmienną zależną.

Wykrywanie współliniowości obejmuje dwie techniki:

  • Macierz korelacji: Badanie macierzy korelacji między zmiennymi niezależnymi jest powszechnym sposobem wykrywania wieloliniowości. Wysokie korelacje (bliskie 1 lub -1) wskazują na potencjalną wielokolinearność.
  • VIF (współczynnik inflacji wariancji): VIF to miara, która określa ilościowo, o ile wzrasta wariancja szacowanego współczynnika regresji, jeśli predyktory są skorelowane. Wysoki VIF (zazwyczaj powyżej 10) sugeruje wieloliniowość.

Metryki oceny dla regresji liniowej

Różnorodność środki ewaluacyjne można wykorzystać do określenia siły dowolnego modelu regresji liniowej. Te wskaźniki oceny często wskazują, jak dobrze model generuje obserwowane produkty.

Najczęstsze pomiary to:

Średni błąd kwadratowy (MSE)

Średni błąd kwadratowy (MSE) jest metryką oceny, która oblicza średnią kwadratów różnic między wartościami rzeczywistymi i przewidywanymi dla wszystkich punktów danych. Różnica jest podnoszona do kwadratu, aby mieć pewność, że różnice ujemne i dodatnie nie znoszą się wzajemnie.

MSE = frac{1}{n}sum_{i=1}^{n}left ( y_i – widehat{y_{i}} ight )^2

Tutaj,

  • n to liczba punktów danych.
  • IIjest rzeczywistą lub zaobserwowaną wartością itpunkt danych.
  • widehat{y_{i}} jest przewidywaną wartością itpunkt danych.

MSE to sposób na ilościowe określenie dokładności przewidywań modelu. MSE jest wrażliwe na wartości odstające, ponieważ duże błędy znacząco wpływają na ogólny wynik.

Średni błąd bezwzględny (MAE)

Średni błąd bezwzględny jest metryką oceny używaną do obliczania dokładności modelu regresji. MAE mierzy średnią bezwzględną różnicę między wartościami przewidywanymi a wartościami rzeczywistymi.

SDLC

Matematycznie MAE wyraża się jako:

MAE =frac{1}{n} sum_{i=1}^{n}|Y_i – widehat{Y_i}|

Tutaj,

  • n to liczba obserwacji
  • IIreprezentuje rzeczywiste wartości.
  • widehat{Y_i} reprezentuje przewidywane wartości

Niższa wartość MAE wskazuje na lepszą wydajność modelu. Nie jest wrażliwy na wartości odstające, ponieważ uwzględniamy różnice bezwzględne.

Średni błąd kwadratowy (RMSE)

Pierwiastek kwadratowy wariancji reszt to Średni błąd kwadratowy . Opisuje, jak dobrze zaobserwowane punkty danych odpowiadają oczekiwanym wartościom lub absolutnemu dopasowaniu modelu do danych.


W notacji matematycznej można to wyrazić jako:
RMSE=sqrt{frac{RSS}{n}}=sqrtfrac{{{sum_{i=2}^{n}(y^{actual}_{i}}- y_{i}^{predicted})^2}}{n}
Zamiast dzielić całą liczbę punktów danych w modelu przez liczbę stopni swobody, należy podzielić sumę kwadratów reszt, aby uzyskać obiektywne oszacowanie. Następnie liczbę tę określa się mianem rezydualnego błędu standardowego (RSE).

W notacji matematycznej można to wyrazić jako:
RMSE=sqrt{frac{RSS}{n}}=sqrtfrac{{{sum_{i=2}^{n}(y^{actual}_{i}}- y_{i}^{predicted})^2}}{(n-2)}

RSME nie jest tak dobrą miarą jak R-kwadrat. Średni błąd kwadratowy może się zmieniać, gdy zmieniają się jednostki zmiennych, ponieważ jego wartość zależy od jednostek zmiennych (nie jest to miara znormalizowana).

Współczynnik determinacji (R-kwadrat)

R-kwadrat to statystyka wskazująca, jak duże zróżnicowanie może wyjaśnić lub uchwycić opracowany model. Zawsze mieści się w przedziale od 0 do 1. Ogólnie rzecz biorąc, im lepiej model pasuje do danych, tym większa jest liczba R-kwadrat.
W notacji matematycznej można to wyrazić jako:
R^{2}=1-(^{frac{RSS}{TSS}})

alfabet i cyfry
  • Resztkowa suma kwadratów (RSS): The suma kwadratów reszty dla każdego punktu danych na wykresie lub danych jest nazywana sumą kwadratów reszt lub RSS. Jest to miara różnicy między zaobserwowanym efektem a oczekiwanym.
    RSS=sum_{i=2}^{n}(y_{i}-b_{0}-b_{1}x_{i})^{2}
  • Całkowita suma kwadratów (TSS): Suma błędów punktów danych ze średniej zmiennej odpowiedzi jest nazywana całkowitą sumą kwadratów lub TSS.
    TSS= sum_{}^{}(y-overline{y_{i}})^2

Metryka R-kwadrat jest miarą proporcji wariancji zmiennej zależnej, która jest wyjaśniana przez zmienne niezależne w modelu.

Skorygowany błąd R-kwadrat

Skorygowano R2mierzy proporcję wariancji zmiennej zależnej, którą wyjaśniają zmienne niezależne w modelu regresji. Regulowany kwadrat R uwzględnia liczbę predyktorów w modelu i karze model za uwzględnienie nieistotnych predyktorów, które nie przyczyniają się znacząco do wyjaśnienia wariancji zmiennych zależnych.

Matematycznie skorygowane R2wyraża się jako:

Adjusted , R^2 = 1 – (frac{(1-R^2).(n-1)}{n-k-1})

Tutaj,

  • n to liczba obserwacji
  • k jest liczbą predyktorów w modelu
  • R2jest współczynnikiem determinacji

Skorygowany kwadrat R pomaga zapobiegać nadmiernemu dopasowaniu. Penalizuje model dodatkowymi predyktorami, które nie przyczyniają się znacząco do wyjaśnienia wariancji zmiennej zależnej.

Implementacja regresji liniowej w Pythonie

Zaimportuj niezbędne biblioteki:

Python3 import pandas as pd import numpy as np import matplotlib.pyplot as plt import matplotlib.axes as ax from matplotlib.animation import FuncAnimation>

Załaduj zestaw danych i oddziel zmienne wejściowe i docelowe

Oto link do zbioru danych: Łącze do zbioru danych

Python3 url = 'https://media.techcodeview.com data = pd.read_csv(url) data # Drop the missing values data = data.dropna() # training dataset and labels train_input = np.array(data.x[0:500]).reshape(500, 1) train_output = np.array(data.y[0:500]).reshape(500, 1) # valid dataset and labels test_input = np.array(data.x[500:700]).reshape(199, 1) test_output = np.array(data.y[500:700]).reshape(199, 1)>

Zbuduj model regresji liniowej i wykreśl linię regresji

Kroki:

  • Przy propagacji do przodu stosuje się funkcję regresji liniowej Y=mx+c, przypisując początkowo losową wartość parametru (m i c).
  • Napisaliśmy funkcję pozwalającą na znalezienie funkcji kosztu, czyli średniej
Python3 class LinearRegression: def __init__(self): self.parameters = {} def forward_propagation(self, train_input): m = self.parameters['m'] c = self.parameters['c'] predictions = np.multiply(m, train_input) + c return predictions def cost_function(self, predictions, train_output): cost = np.mean((train_output - predictions) ** 2) return cost def backward_propagation(self, train_input, train_output, predictions): derivatives = {} df = (predictions-train_output) # dm= 2/n * mean of (predictions-actual) * input dm = 2 * np.mean(np.multiply(train_input, df)) # dc = 2/n * mean of (predictions-actual) dc = 2 * np.mean(df) derivatives['dm'] = dm derivatives['dc'] = dc return derivatives def update_parameters(self, derivatives, learning_rate): self.parameters['m'] = self.parameters['m'] - learning_rate * derivatives['dm'] self.parameters['c'] = self.parameters['c'] - learning_rate * derivatives['dc'] def train(self, train_input, train_output, learning_rate, iters): # Initialize random parameters self.parameters['m'] = np.random.uniform(0, 1) * -1 self.parameters['c'] = np.random.uniform(0, 1) * -1 # Initialize loss self.loss = [] # Initialize figure and axis for animation fig, ax = plt.subplots() x_vals = np.linspace(min(train_input), max(train_input), 100) line, = ax.plot(x_vals, self.parameters['m'] * x_vals + self.parameters['c'], color='red', label='Regression Line') ax.scatter(train_input, train_output, marker='o', color='green', label='Training Data') # Set y-axis limits to exclude negative values ax.set_ylim(0, max(train_output) + 1) def update(frame): # Forward propagation predictions = self.forward_propagation(train_input) # Cost function cost = self.cost_function(predictions, train_output) # Back propagation derivatives = self.backward_propagation( train_input, train_output, predictions) # Update parameters self.update_parameters(derivatives, learning_rate) # Update the regression line line.set_ydata(self.parameters['m'] * x_vals + self.parameters['c']) # Append loss and print self.loss.append(cost) print('Iteration = {}, Loss = {}'.format(frame + 1, cost)) return line, # Create animation ani = FuncAnimation(fig, update, frames=iters, interval=200, blit=True) # Save the animation as a video file (e.g., MP4) ani.save('linear_regression_A.webp'false'>Python3 #Przykładowe użycie linear_reg = parametry LinearRegression(), strata = linear_reg.train(train_input, train_output, 0.0001, 20) Dane wyjściowe: Iteracja = 1, Strata = 9130.407560462196 Iteracja = 1, Strata = 1107.1996742908998 Iteracja = 1, Strata = 140. 31580932842422 Iteracja = 1, Strata = 23,795780526084116 Iteracja = 2, Strata = 9,753848205147605 Iteracja = 3, Strata = 8,061641745006835 Iteracja = 4, Strata = 7,8577116490914864 Iteracja = 5, Strata = 7,8331 350515579015 Iteracja = 6, Strata = 7,830172502503967 Iteracja = 7, Strata = 7,829814681591015 Iteracja = 8 , Strata = 7,829770758846183 Iteracja = 9, Strata = 7,829764664327399 Iteracja = 10, Strata = 7,829763128602258 Iteracja = 11, Strata = 7,829762142342088 Iteracja = 12, Strata = 7,8297 61222379141 Iteracja = 13, Strata = 7,829760310486438 Iteracja = 14, Strata = 7,829759399646989 Iteracja = 15, Strata = 7,829758489015161 Iteracja = 16, Strata = 7,829757578489033 Iteracja = 17, Strata = 7,829756668056319 Iteracja = 18, Strata = 7,829755757715535 Iteracja = 19, Strata = 7,82975 4847466484 Iteracja = 20, Strata = 7,829753937309139 Linia regresji liniowej Linia regresji liniowej dostarcza cennych informacji na temat zależności pomiędzy dwiema zmiennymi. Reprezentuje najlepiej dopasowaną linię, która oddaje ogólny trend zmian zmiennej zależnej (Y) w odpowiedzi na zmiany zmiennej niezależnej (X). Dodatnia linia regresji liniowej: Dodatnia linia regresji liniowej wskazuje bezpośredni związek pomiędzy zmienną niezależną (X) i zmienną zależną (Y). Oznacza to, że wraz ze wzrostem wartości X wzrasta również wartość Y. Nachylenie dodatniej linii regresji liniowej jest dodatnie, co oznacza, że ​​linia jest nachylona w górę od lewej do prawej. Ujemna linia regresji liniowej: Ujemna linia regresji liniowej wskazuje odwrotną zależność pomiędzy zmienną niezależną (X) i zmienną zależną (Y). Oznacza to, że wraz ze wzrostem wartości X wartość Y maleje. Nachylenie ujemnej linii regresji liniowej jest ujemne, co oznacza, że ​​linia nachyla się w dół od lewej do prawej. Techniki regularyzacji modeli liniowych Regresja Lasso (regularyzacja L1) Regresja Lasso to technika używana do regularyzacji modelu regresji liniowej, dodaje karę składnik funkcji celu regresji liniowej, aby zapobiec nadmiernemu dopasowaniu. Funkcja celu po zastosowaniu regresji lasso wygląda następująco: pierwszy wyraz to strata metodą najmniejszych kwadratów, reprezentująca kwadratową różnicę między wartościami przewidywanymi i rzeczywistymi. drugi człon jest składnikiem regularyzacji L1, penalizuje on sumę wartości bezwzględnych współczynnika regresji θj. Regresja grzbietowa (regularyzacja L2) Regresja grzbietowa jest techniką regresji liniowej, która dodaje składnik regularyzujący do standardowego celu liniowego. Ponownie celem jest zapobieganie nadmiernemu dopasowaniu poprzez karanie dużego współczynnika w równaniu regresji liniowej. Jest to przydatne, gdy zbiór danych ma wieloliniowość, gdzie zmienne predykcyjne są silnie skorelowane. Funkcja celu po zastosowaniu regresji grzbietowej wygląda następująco: pierwszy wyraz to strata metodą najmniejszych kwadratów, reprezentująca kwadratową różnicę między wartościami przewidywanymi i rzeczywistymi. drugi człon jest składnikiem regularyzacji L1, penalizuje on sumę kwadratów wartości współczynnika regresji θj. Elastyczna regresja sieciowa Elastyczna regresja sieciowa to hybrydowa technika regularyzacji, która łączy w sobie moc regularyzacji L1 i L2 w celu regresji liniowej. pierwszy człon to strata najmniejszych kwadratów. drugi człon to regularyzacja L1, a trzeci to regresja grzbietu.???? jest ogólną siłą regularyzacji. α kontroluje połączenie regularyzacji L1 i L2. Zastosowania regresji liniowej Regresja liniowa jest stosowana w wielu różnych dziedzinach, w tym w finansach, ekonomii i psychologii, do zrozumienia i przewidywania zachowania określonej zmiennej. Na przykład w finansach regresję liniową można zastosować do zrozumienia związku między ceną akcji spółki a jej zyskami lub do przewidzenia przyszłej wartości waluty na podstawie jej przeszłych wyników. Zalety i wady regresji liniowej Zalety regresji liniowej Regresja liniowa jest stosunkowo prostym algorytmem, dzięki czemu jest łatwy do zrozumienia i wdrożenia. Współczynniki modelu regresji liniowej można interpretować jako zmianę zmiennej zależnej na jednojednostkową zmianę zmiennej niezależnej, zapewniając wgląd w relacje między zmiennymi. Regresja liniowa jest wydajna obliczeniowo i może skutecznie obsługiwać duże zbiory danych. Można go szybko trenować na dużych zbiorach danych, dzięki czemu nadaje się do zastosowań w czasie rzeczywistym. Regresja liniowa jest stosunkowo odporna na wartości odstające w porównaniu z innymi algorytmami uczenia maszynowego. Wartości odstające mogą mieć mniejszy wpływ na ogólną wydajność modelu. Regresja liniowa często służy jako dobry model bazowy do porównania z bardziej złożonymi algorytmami uczenia maszynowego. Regresja liniowa to algorytm o ugruntowanej pozycji z bogatą historią i jest powszechnie dostępny w różnych metodach uczenia maszynowego biblioteki i pakiety oprogramowania. Wady regresji liniowej Regresja liniowa zakłada liniową zależność pomiędzy zmiennymi zależnymi i niezależnymi. Jeśli zależność nie jest liniowa, model może nie działać dobrze. Regresja liniowa jest wrażliwa na wielowspółliniowość, która występuje, gdy istnieje wysoka korelacja między zmiennymi niezależnymi. Wielokolinearność może zawyżać wariancję współczynników i prowadzić do niestabilnych przewidywań modelu. W regresji liniowej zakłada się, że cechy mają już formę odpowiednią dla modelu. Do przekształcenia cech do formatu, który może być efektywnie wykorzystany w modelu, może być wymagana inżynieria cech. Regresja liniowa jest podatna zarówno na nadmierne, jak i niedopasowanie. Do nadmiernego dopasowania dochodzi, gdy model zbyt dobrze uczy się danych uczących i nie udaje mu się uogólnić na niewidoczne dane. Niedopasowanie ma miejsce, gdy model jest zbyt prosty, aby uchwycić podstawowe zależności w danych. Regresja liniowa zapewnia ograniczoną moc wyjaśniającą złożone relacje między zmiennymi. Aby uzyskać głębszy wgląd, konieczne mogą być bardziej zaawansowane techniki uczenia maszynowego.WniosekRegresja liniowa to podstawowy algorytm uczenia maszynowego, który jest szeroko stosowany od wielu lat ze względu na jego prostotę, interpretowalność i wydajność. Jest to cenne narzędzie do zrozumienia zależności między zmiennymi i tworzenia prognoz w różnych zastosowaniach. Należy jednak zdawać sobie sprawę z jego ograniczeń, takich jak założenie o liniowości i wrażliwości na wielowspółliniowość. Po dokładnym rozważeniu tych ograniczeń regresja liniowa może stać się potężnym narzędziem do analizy i przewidywania danych. Regresja liniowa – często zadawane pytania (FAQ) Co oznacza regresja liniowa w uproszczeniu? Regresja liniowa to nadzorowany algorytm uczenia maszynowego, który przewiduje ciągłą zmienną docelową w oparciu o jedną lub więcej zmiennych niezależnych. Zakłada liniową zależność między zmiennymi zależnymi i niezależnymi i wykorzystuje równanie liniowe do modelowania tej zależności. Dlaczego używamy regresji liniowej? Regresja liniowa jest powszechnie stosowana do: Przewidywania wartości liczbowych na podstawie cech wejściowych Prognozowania przyszłych trendów na podstawie danych historycznych Identyfikowania korelacji między zmiennymi Zrozumienia wpływu różnych czynników na konkretny wynikJak korzystać z regresji liniowej? Używaj regresji liniowej, dopasowując linię, aby przewidzieć związek między zmiennymi , zrozumienie współczynników i dokonywanie prognoz na podstawie wartości wejściowych w celu podejmowania świadomych decyzji. Dlaczego nazywa się ją regresją liniową? Nazwa regresji liniowej wzięła się od wykorzystania równania liniowego do modelowania zależności między zmiennymi, reprezentujących dopasowanie linii prostej do punktów danych. Jakie są przykłady regresji liniowej? Przewidywanie cen domów na podstawie powierzchni, szacowanie wyników egzaminów na podstawie godzin nauki i prognozowanie sprzedaży na podstawie wydatków na reklamę to przykłady zastosowań regresji liniowej.>