logo

Lineaire regressie in machinaal leren

Machinaal leren is een tak van kunstmatige intelligentie die zich richt op de ontwikkeling van algoritmen en statistische modellen die kunnen leren van en voorspellingen kunnen doen op basis van data. Lineaire regressie is ook een type machine-learning-algoritme, meer specifiek a begeleid machine learning-algoritme dat leert van de gelabelde datasets en de datapunten toewijst aan de meest geoptimaliseerde lineaire functies. die kan worden gebruikt voor voorspellingen over nieuwe datasets.

Allereerst moeten we weten wat machine learning-algoritmen onder toezicht zijn. Het is een vorm van machinaal leren waarbij het algoritme leert van gelabelde gegevens. Gelabelde data betekent de dataset waarvan de respectieve doelwaarde al bekend is. Er zijn twee soorten begeleid leren:

  • Classificatie : Het voorspelt de klasse van de dataset op basis van de onafhankelijke invoervariabele. Klasse zijn de categorische of discrete waarden. zoals het beeld van een dier een kat of een hond is?
  • Regressie : Het voorspelt de continue uitvoervariabelen op basis van de onafhankelijke invoervariabele. zoals de voorspelling van huizenprijzen op basis van verschillende parameters zoals de leeftijd van het huis, de afstand tot de hoofdweg, de locatie, het gebied, enz.

Hier zullen we een van de eenvoudigste soorten regressie bespreken, d.w.z. Lineaire regressie.



Inhoudsopgave

Wat is lineaire regressie?

Lineaire regressie is een type van begeleid machinaal leren algoritme dat de lineaire relatie berekent tussen de afhankelijke variabele en een of meer onafhankelijke kenmerken door een lineaire vergelijking aan te passen aan waargenomen gegevens.

Als er slechts één onafhankelijk kenmerk is, staat dit bekend als Eenvoudige lineaire regressie , en als er meer dan één functie is, staat dit bekend als Meerdere lineaire regressie .

Op dezelfde manier wordt er rekening mee gehouden als er slechts één afhankelijke variabele is Univariate lineaire regressie , terwijl als er meer dan één afhankelijke variabele is, dit bekend staat als Multivariate regressie .

Waarom lineaire regressie belangrijk is?

De interpreteerbaarheid van lineaire regressie is een opmerkelijke kracht. De vergelijking van het model biedt duidelijke coëfficiënten die de impact van elke onafhankelijke variabele op de afhankelijke variabele verduidelijken, waardoor een dieper inzicht in de onderliggende dynamiek wordt vergemakkelijkt. De eenvoud ervan is een deugd, aangezien lineaire regressie transparant is, gemakkelijk te implementeren en dient als basisconcept voor complexere algoritmen.

Lineaire regressie is niet louter een voorspellend instrument; het vormt de basis voor diverse geavanceerde modellen. Technieken als regularisatie en ondersteuningsvectormachines zijn geïnspireerd op lineaire regressie, waardoor de bruikbaarheid ervan wordt vergroot. Bovendien is lineaire regressie een hoeksteen bij het testen van aannames, waardoor onderzoekers belangrijke aannames over de gegevens kunnen valideren.

Soorten lineaire regressie

Er zijn twee hoofdtypen lineaire regressie:

Eenvoudige lineaire regressie

Dit is de eenvoudigste vorm van lineaire regressie en er zijn slechts één onafhankelijke variabele en één afhankelijke variabele bij betrokken. De vergelijking voor eenvoudige lineaire regressie is:
y=eta_{0}+eta_{1}X
waar:

normalisatie in de database
  • Y is de afhankelijke variabele
  • X is de onafhankelijke variabele
  • β0 is het snijpunt
  • β1 is de helling

Meerdere lineaire regressie

Het gaat hierbij om meer dan één onafhankelijke variabele en één afhankelijke variabele. De vergelijking voor meervoudige lineaire regressie is:
y=eta_{0}+eta_{1}X+eta_{2}X+………eta_{n}X
waar:

  • Y is de afhankelijke variabele
  • X1, X2, …, Xp zijn de onafhankelijke variabelen
  • β0 is het snijpunt
  • β1, β2, …, βn zijn de hellingen

Het doel van het algoritme is om de beste Fit-lijn vergelijking die de waarden kan voorspellen op basis van de onafhankelijke variabelen.

In regressie zijn set records aanwezig met X- en Y-waarden en deze waarden worden gebruikt om een ​​functie te leren, dus als je Y wilt voorspellen op basis van een onbekende X, kan deze geleerde functie worden gebruikt. Bij regressie moeten we de waarde van Y vinden. Er is dus een functie nodig die continue Y voorspelt in het geval van regressie, gegeven X als onafhankelijke kenmerken.

Wat is de beste Fitline?

Ons primaire doel bij het gebruik van lineaire regressie is het lokaliseren van de best passende lijn, wat inhoudt dat de fout tussen de voorspelde en werkelijke waarden tot een minimum moet worden beperkt. Er zal de minste fout zijn in de best passende lijn.

De beste Fit Line-vergelijking biedt een rechte lijn die de relatie tussen de afhankelijke en onafhankelijke variabelen weergeeft. De helling van de lijn geeft aan hoeveel de afhankelijke variabele verandert bij een eenheidsverandering in de onafhankelijke variabele(n).

Lineaire regressie in machinaal leren

Lineaire regressie


Hier wordt Y een afhankelijke of doelvariabele genoemd en X een onafhankelijke variabele, ook wel de voorspeller van Y genoemd. Er zijn veel soorten functies of modules die voor regressie kunnen worden gebruikt. Een lineaire functie is het eenvoudigste type functie. Hier kan X een enkel kenmerk zijn of meerdere kenmerken die het probleem vertegenwoordigen.

Lineaire regressie voert de taak uit om een ​​afhankelijke variabelewaarde (y) te voorspellen op basis van een gegeven onafhankelijke variabele (x)). Daarom is de naam lineaire regressie. In de figuur hierboven is X (input) de werkervaring en Y (output) het salaris van een persoon. De regressielijn is de best passende lijn voor ons model.

We gebruiken de kostenfunctie om de beste waarden te berekenen om de best passende lijn te krijgen, aangezien verschillende waarden voor gewichten of de coëfficiënt van lijnen resulteren in verschillende regressielijnen.

Hypothesefunctie in lineaire regressie

Zoals we eerder hebben aangenomen, is ons onafhankelijke kenmerk de ervaring, d.w.z. X en het respectieve salaris Y is de afhankelijke variabele. Laten we aannemen dat er een lineair verband bestaat tussen X en Y, dan kan het salaris worden voorspeld met behulp van:

hat{Y} = heta_1 + heta_2X

OF

hat{y}_i = heta_1 + heta_2x_i

Hier,

  • y_i epsilon Y ;; (i= 1,2, cdots , n) zijn labels voor gegevens (onder toezicht leren)
  • x_i epsilon X ;; (i= 1,2, cdots , n) zijn de invoeronafhankelijke trainingsgegevens (univariaat – één invoervariabele (parameter))
  • hat{y_i} epsilon hat{Y} ;; (i= 1,2, cdots , n) zijn de voorspelde waarden.

Het model krijgt de beste regressie-fitlijn door de beste θ te vinden1en θ2waarden.

  • i 1 : onderscheppen
  • i 2 : coëfficiënt van x

Zodra we de beste θ hebben gevonden1en θ2waarden, krijgen we de best passende lijn. Dus wanneer we ons model eindelijk gaan gebruiken voor voorspellingen, zal het de waarde van y voorspellen voor de invoerwaarde van x.

θ bijwerken 1 en θ 2 waarden om de best passende lijn te krijgen?

Om de best passende regressielijn te bereiken, probeert het model de doelwaarde te voorspellenhat{Y} zodanig dat het foutverschil tussen de voorspelde waardehat{Y} en de werkelijke waarde Y is minimaal. Het is dus erg belangrijk om de θ bij te werken1en θ2waarden, om de beste waarde te bereiken die de fout tussen de voorspelde y-waarde (pred) en de werkelijke y-waarde (y) minimaliseert.

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

Kostenfunctie voor lineaire regressie

De kostenfunctie of de verlies functie is niets anders dan de fout of het verschil tussen de voorspelde waardehat{Y} en de werkelijke waarde Y.

Bij lineaire regressie is de Gemiddelde kwadratische fout (MSE) Er wordt gebruik gemaakt van de kostenfunctie, die het gemiddelde berekent van de kwadratische fouten tussen de voorspelde waardenhat{y}_i en de werkelijke waarden{y}_i . Het doel is om de optimale waarden voor het snijpunt te bepalen heta_1 en de coëfficiënt van het invoerkenmerk heta_2 het verstrekken van de best passende lijn voor de gegeven gegevenspunten. De lineaire vergelijking die deze relatie uitdrukt is:hat{y}_i = heta_1 + heta_2x_i .

MSE-functie kan worden berekend als:

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

Met behulp van de MSE-functie wordt het iteratieve proces van gradiëntdaling toegepast om de waarden van bij te werken heta_1 & heta_2 . Dit zorgt ervoor dat de MSE-waarde convergeert naar de globale minima, wat de meest nauwkeurige aanpassing van de lineaire regressielijn aan de dataset betekent.

Dit proces omvat het continu aanpassen van de parameters ( heta_1) en ( heta_2) op basis van de gradiënten berekend op basis van de MSE. Het eindresultaat is een lineaire regressielijn die de totale kwadratische verschillen tussen de voorspelde en werkelijke waarden minimaliseert, waardoor een optimale weergave van de onderliggende relatie in de gegevens ontstaat.

Gradiëntdaling voor lineaire regressie

Een lineair regressiemodel kan worden getraind met behulp van het optimalisatiealgoritme gradiënt afdaling door de parameters van het model iteratief te wijzigen om de gemiddelde kwadratische fout (MSE) van het model op een trainingsdataset. Om θ bij te werken1en θ2waarden om de kostenfunctie te verminderen (waarbij de RMSE-waarde wordt geminimaliseerd) en de best passende lijn te bereiken, gebruikt het model Gradient Descent. Het idee is om te beginnen met willekeurige θ1en θ2waarden en werk de waarden vervolgens iteratief bij, waarbij de minimale kosten worden bereikt.

Een gradiënt is niets anders dan een afgeleide die de effecten op de uitgangen van de functie definieert met een klein beetje variatie in de ingangen.

Laten we de kostenfunctie(J) differentiëren met betrekking tot 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}

Laten we de kostenfunctie(J) differentiëren met betrekking tot 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}

dharmendra-leeftijd

Het doel van lineaire regressie is het vinden van de coëfficiënten van een lineaire vergelijking die het beste bij de trainingsgegevens passen. Door met betrekking tot de coëfficiënten in de richting van de negatieve Mean Squared Error-gradiënt te bewegen, kunnen de coëfficiënten worden gewijzigd. En het respectievelijke snijpunt en de coëfficiënt van X zullen zijn alsalpha is het leerpercentage.

Gradiënt afdaling

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}

Aannames van eenvoudige lineaire regressie

Lineaire regressie is een krachtig hulpmiddel voor het begrijpen en voorspellen van het gedrag van een variabele. Het moet echter aan een aantal voorwaarden voldoen om nauwkeurige en betrouwbare oplossingen te kunnen bieden.

  1. Lineariteit : De onafhankelijke en afhankelijke variabelen hebben een lineaire relatie met elkaar. Dit impliceert dat veranderingen in de afhankelijke variabele op lineaire wijze die in de onafhankelijke variabele(n) volgen. Dit betekent dat er een rechte lijn door de gegevenspunten moet worden getrokken. Als de relatie niet lineair is, zal lineaire regressie geen nauwkeurig model zijn.
  2. Onafhankelijkheid : De waarnemingen in de dataset zijn onafhankelijk van elkaar. Dit betekent dat de waarde van de afhankelijke variabele voor de ene waarneming niet afhankelijk is van de waarde van de afhankelijke variabele voor een andere waarneming. Als de waarnemingen niet onafhankelijk zijn, zal lineaire regressie geen nauwkeurig model zijn.
  3. Homoscedasticiteit : Op alle niveaus van de onafhankelijke variabele(n) is de variantie van de fouten constant. Dit geeft aan dat de hoeveelheid van de onafhankelijke variabele(n) geen invloed heeft op de variantie van de fouten. Als de variantie van de residuen niet constant is, zal lineaire regressie geen nauwkeurig model zijn.

    Homoscedasticiteit in lineaire regressie

  4. Normaliteit : De residuen moeten normaal verdeeld zijn. Dit betekent dat de residuen een klokvormige curve moeten volgen. Als de residuen niet normaal verdeeld zijn, zal lineaire regressie geen nauwkeurig model zijn.

Aannames van meervoudige lineaire regressie

Voor meervoudige lineaire regressie zijn alle vier de aannames van eenvoudige lineaire regressie van toepassing. Daarnaast zijn er hieronder nog enkele:

  1. Geen multicollineariteit : Er is geen hoge correlatie tussen de onafhankelijke variabelen. Dit geeft aan dat er weinig of geen correlatie bestaat tussen de onafhankelijke variabelen. Multicollineariteit treedt op wanneer twee of meer onafhankelijke variabelen sterk met elkaar gecorreleerd zijn, wat het moeilijk kan maken om het individuele effect van elke variabele op de afhankelijke variabele te bepalen. Als er sprake is van multicollineariteit, zal meervoudige lineaire regressie geen nauwkeurig model zijn.
  2. Additiviteit: Het model gaat ervan uit dat het effect van veranderingen in een voorspellende variabele op de responsvariabele consistent is, ongeacht de waarden van de andere variabelen. Deze aanname impliceert dat er geen interactie is tussen variabelen wat betreft hun effecten op de afhankelijke variabele.
  3. Functieselectie: Bij meervoudige lineaire regressie is het essentieel om zorgvuldig de onafhankelijke variabelen te selecteren die in het model worden opgenomen. Het opnemen van irrelevante of overtollige variabelen kan leiden tot overfitting en de interpretatie van het model compliceren.
  4. Overfitting: Overfitting vindt plaats wanneer het model de trainingsgegevens te nauw aansluit, waardoor ruis of willekeurige fluctuaties worden vastgelegd die niet de werkelijke onderliggende relatie tussen variabelen weergeven. Dit kan leiden tot slechte generalisatieprestaties op nieuwe, onzichtbare gegevens.

Multicollineariteit

Multicollineariteit is een statistisch fenomeen dat optreedt wanneer twee of meer onafhankelijke variabelen in een meervoudig regressiemodel sterk gecorreleerd zijn, waardoor het moeilijk wordt om de individuele effecten van elke variabele op de afhankelijke variabele te beoordelen.

Het detecteren van multicollineariteit omvat twee technieken:

  • Correlatiematrix: Het onderzoeken van de correlatiematrix tussen de onafhankelijke variabelen is een gebruikelijke manier om multicollineariteit te detecteren. Hoge correlaties (dicht bij 1 of -1) duiden op potentiële multicollineariteit.
  • VIF (variantie-inflatiefactor): VIF is een maatstaf die kwantificeert hoeveel de variantie van een geschatte regressiecoëfficiënt toeneemt als uw voorspellers gecorreleerd zijn. Een hoge VIF (doorgaans boven de 10) duidt op multicollineariteit.

Evaluatiestatistieken voor lineaire regressie

Een verscheidenheid aan evaluatiemaatregelen kan worden gebruikt om de sterkte van elk lineair regressiemodel te bepalen. Deze beoordelingsmetrieken geven vaak een indicatie van hoe goed het model de waargenomen resultaten produceert.

De meest voorkomende metingen zijn:

Gemiddelde kwadratische fout (MSE)

Gemiddelde kwadratische fout (MSE) is een evaluatiemetriek die het gemiddelde berekent van de gekwadrateerde verschillen tussen de werkelijke en voorspelde waarden voor alle gegevenspunten. Het verschil wordt gekwadrateerd om ervoor te zorgen dat negatieve en positieve verschillen elkaar niet opheffen.

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

Hier,

  • n is het aantal gegevenspunten.
  • Eniis de werkelijke of waargenomen waarde voor de iedata punt.
  • widehat{y_{i}} is de voorspelde waarde voor de iedata punt.

MSE is een manier om de nauwkeurigheid van de voorspellingen van een model te kwantificeren. MSE is gevoelig voor uitschieters, aangezien grote fouten aanzienlijk bijdragen aan de algehele score.

Gemiddelde absolute fout (MAE)

Gemiddelde absolute fout is een evaluatiemetriek die wordt gebruikt om de nauwkeurigheid van een regressiemodel te berekenen. MAE meet het gemiddelde absolute verschil tussen de voorspelde waarden en de werkelijke waarden.

Wiskundig wordt MAE uitgedrukt als:

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

Hier,

  • n is het aantal waarnemingen
  • ENivertegenwoordigt de werkelijke waarden.
  • widehat{Y_i} vertegenwoordigt de voorspelde waarden

Een lagere MAE-waarde duidt op betere modelprestaties. Het is niet gevoelig voor de uitschieters, aangezien we rekening houden met absolute verschillen.

Root Mean Squared Error (RMSE)

De vierkantswortel van de variantie van de residuen is de Wortelgemiddelde kwadratische fout . Het beschrijft hoe goed de waargenomen datapunten overeenkomen met de verwachte waarden, of de absolute fit van het model met de gegevens.


In wiskundige notatie kan het worden uitgedrukt als:
RMSE=sqrt{frac{RSS}{n}}=sqrtfrac{{{sum_{i=2}^{n}(y^{actual}_{i}}- y_{i}^{predicted})^2}}{n}
In plaats van het gehele aantal datapunten in het model te delen door het aantal vrijheidsgraden, moet men de som van de gekwadrateerde residuen delen om een ​​zuivere schatting te verkrijgen. Vervolgens wordt dit cijfer de Residual Standard Error (RSE) genoemd.

In wiskundige notatie kan het worden uitgedrukt als:
RMSE=sqrt{frac{RSS}{n}}=sqrtfrac{{{sum_{i=2}^{n}(y^{actual}_{i}}- y_{i}^{predicted})^2}}{(n-2)}

RSME is niet zo'n goede maatstaf als R-kwadraat. De Root Mean Squared Error kan fluctueren als de eenheden van de variabelen variëren, aangezien de waarde ervan afhankelijk is van de eenheden van de variabelen (het is geen genormaliseerde maatstaf).

Bepalingscoëfficiënt (R-kwadraat)

R-kwadraat is een statistiek die aangeeft hoeveel variatie het ontwikkelde model kan verklaren of vastleggen. Het ligt altijd in het bereik van 0 tot 1. Over het algemeen geldt: hoe beter het model overeenkomt met de gegevens, hoe groter het R-kwadraatgetal.
In wiskundige notatie kan het worden uitgedrukt als:
R^{2}=1-(^{frac{RSS}{TSS}})

  • Resterende som van kwadraten (RSS): The De som van de kwadraten van het residu voor elk gegevenspunt in de plot of gegevens staat bekend als de residuele som van de kwadraten, of RSS. Het is een meting van het verschil tussen de waargenomen output en de verwachte output.
    RSS=sum_{i=2}^{n}(y_{i}-b_{0}-b_{1}x_{i})^{2}
  • Totale som van kwadraten (TSS): De som van de fouten van de datapunten ten opzichte van het gemiddelde van de antwoordvariabele staat bekend als de totale som van kwadraten, of TSS.
    TSS= sum_{}^{}(y-overline{y_{i}})^2

R-kwadraatmetriek is een maatstaf voor het aandeel van de variantie in de afhankelijke variabele die wordt verklaard door de onafhankelijke variabelen in het model.

Aangepaste R-kwadraatfout

Aangepaste R2meet het aandeel variantie in de afhankelijke variabele dat wordt verklaard door onafhankelijke variabelen in een regressiemodel. Aangepast R-vierkant houdt rekening met het aantal voorspellers in het model en bestraft het model voor het opnemen van irrelevante voorspellers die niet significant bijdragen aan het verklaren van de variantie in de afhankelijke variabelen.

Wiskundig aangepast R2wordt uitgedrukt als:

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

java-string concat

Hier,

  • n is het aantal waarnemingen
  • k is het aantal voorspellers in het model
  • R2is coëfficiënt van vastberadenheid

Het aangepaste R-vierkant helpt overfitting te voorkomen. Het bestraft het model met extra voorspellers die niet significant bijdragen aan het verklaren van de variantie in de afhankelijke variabele.

Python-implementatie van lineaire regressie

Importeer de benodigde bibliotheken:

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

Laad de gegevensset en scheid invoer- en doelvariabelen

Hier is de link voor de dataset: Dataset-link

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)>

Bouw het lineaire regressiemodel en teken de regressielijn

Stappen:

  • Bij voorwaartse voortplanting wordt de lineaire regressiefunctie Y=mx+c toegepast door aanvankelijk een willekeurige waarde van parameter (m & c) toe te wijzen.
  • We hebben de functie geschreven voor het vinden van de kostenfunctie, dat wil zeggen het gemiddelde
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 #Voorbeeld gebruik linear_reg = LinearRegressie() parameters, verlies = linear_reg.train(train_input, train_output, 0.0001, 20) Uitvoer: Iteratie = 1, Verlies = 9130.407560462196 Iteratie = 1, Verlies = 1107.1996742908998 Iteratie = 1, Verlies = 140.315 80932842422 Iteratie = 1, verlies = 23,795780526084116 Iteratie = 2, verlies = 9,753848205147605 Iteratie = 3, verlies = 8,061641745006835 Iteratie = 4, verlies = 7,8577116490914864 Iteratie = 5, verlies = 7,8331 350515579015 Iteratie = 6, verlies = 7,830172502503967 Iteratie = 7, verlies = 7,829814681591015 Iteratie = 8 , Verlies = 7,829770758846183 Iteratie = 9, Verlies = 7,829764664327399 Iteratie = 10, Verlies = 7,829763128602258 Iteratie = 11, Verlies = 7,829762142342088 Iteratie = 12, Verlies = 7,8297 61222379141 Iteratie = 13, verlies = 7,829760310486438 Iteratie = 14, verlies = 7,829759399646989 Iteratie = 15, Verlies = 7,829758489015161 Iteratie = 16, verlies = 7,829757578489033 Iteratie = 17, verlies = 7,829756668056319 Iteratie = 18, verlies = 7,829755757715535 Iteratie = 19, verlies = 7,82975 4847466484 Iteratie = 20, verlies = 7,829753937309139 Lineaire regressielijnDe lineaire regressielijn biedt waardevolle inzichten in de relatie tussen de twee variabelen. Het vertegenwoordigt de best passende lijn die de algemene trend weergeeft van hoe een afhankelijke variabele (Y) verandert als reactie op variaties in een onafhankelijke variabele (X). Positieve lineaire regressielijn: Een positieve lineaire regressielijn geeft een directe relatie aan tussen de onafhankelijke variabele (X) en de afhankelijke variabele (Y). Dit betekent dat naarmate de waarde van X toeneemt, de waarde van Y ook toeneemt. De helling van een positieve lineaire regressielijn is positief, wat betekent dat de lijn van links naar rechts schuin omhoog loopt. Negatieve lineaire regressielijn: Een negatieve lineaire regressielijn geeft een omgekeerde relatie aan tussen de onafhankelijke variabele (X) en de afhankelijke variabele (Y). Dit betekent dat naarmate de waarde van X toeneemt, de waarde van Y afneemt. De helling van een negatieve lineaire regressielijn is negatief, wat betekent dat de lijn van links naar rechts naar beneden helt. Regularisatietechnieken voor lineaire modellen Lasso-regressie (L1-regularisatie) Lasso-regressie is een techniek die wordt gebruikt voor het regulariseren van een lineair regressiemodel. Er wordt een boete aan toegevoegd. term voor de lineaire regressiedoelfunctie om overfitting te voorkomen. De objectieve functie na toepassing van lasso-regressie is: de eerste term is het kleinste kwadratenverlies, dat het kwadraat van het verschil tussen voorspelde en werkelijke waarden vertegenwoordigt. de tweede term is de L1-regularisatieterm, deze bestraft de som van de absolute waarden van de regressiecoëfficiënt θj. Ridge-regressie (L2-regularisatie) Ridge-regressie is een lineaire regressietechniek die een regularisatieterm toevoegt aan de standaard lineaire doelstelling. Nogmaals, het doel is om overfitting te voorkomen door grote coëfficiënten in lineaire regressievergelijking te bestraffen. Dit is nuttig wanneer de dataset multicollineariteit heeft waarbij voorspellende variabelen sterk gecorreleerd zijn. De objectieve functie na het toepassen van nokregressie is: de eerste term is het verlies in kleinste kwadraten, dat het kwadraat van het verschil tussen voorspelde en werkelijke waarden vertegenwoordigt. de tweede term is de L1-regularisatieterm, deze bestraft de som van het kwadraat van de waarden van de regressiecoëfficiënt θj. Elastic Net Regressie Elastic Net Regressie is een hybride regularisatietechniek die de kracht van zowel L1- als L2-regularisatie combineert in lineaire regressiedoelstellingen. de eerste term is het kleinste kwadratenverlies. de tweede term is L1-regularisatie en de derde is nokregressie.???? is de algehele regularisatiesterkte. α regelt de mix tussen L1- en L2-regularisatie. Toepassingen van lineaire regressie Lineaire regressie wordt op veel verschillende gebieden gebruikt, waaronder financiën, economie en psychologie, om het gedrag van een bepaalde variabele te begrijpen en te voorspellen. In de financiële wereld kan lineaire regressie bijvoorbeeld worden gebruikt om inzicht te krijgen in de relatie tussen de aandelenkoers van een bedrijf en zijn inkomsten, of om de toekomstige waarde van een valuta te voorspellen op basis van de prestaties uit het verleden. Voordelen en nadelen van lineaire regressieVoordelen van lineaire regressieLineaire regressie is een relatief eenvoudig algoritme, waardoor het gemakkelijk te begrijpen en te implementeren is. De coëfficiënten van het lineaire regressiemodel kunnen worden geïnterpreteerd als de verandering in de afhankelijke variabele voor een verandering van één eenheid in de onafhankelijke variabele, waardoor inzicht wordt verkregen in de relaties tussen variabelen. Lineaire regressie is computationeel efficiënt en kan grote datasets effectief verwerken. Het kan snel worden getraind op grote datasets, waardoor het geschikt is voor realtime toepassingen. Lineaire regressie is relatief robuust tegen uitschieters in vergelijking met andere machine learning-algoritmen. Uitschieters hebben mogelijk een kleinere impact op de algehele modelprestaties. Lineaire regressie dient vaak als een goed basismodel voor vergelijking met complexere machine learning-algoritmen. Lineaire regressie is een beproefd algoritme met een rijke geschiedenis en is algemeen beschikbaar in verschillende machine learning-algoritmen. bibliotheken en softwarepakketten. Nadelen van lineaire regressie Bij lineaire regressie wordt uitgegaan van een lineair verband tussen de afhankelijke en onafhankelijke variabelen. Als de relatie niet lineair is, presteert het model mogelijk niet goed. Lineaire regressie is gevoelig voor multicollineariteit, wat optreedt wanneer er een hoge correlatie bestaat tussen onafhankelijke variabelen. Multicollineariteit kan de variantie van de coëfficiënten vergroten en tot onstabiele modelvoorspellingen leiden. Lineaire regressie gaat ervan uit dat de kenmerken zich al in een geschikte vorm voor het model bevinden. Er kan feature-engineering nodig zijn om features om te zetten in een formaat dat effectief door het model kan worden gebruikt. Lineaire regressie is gevoelig voor zowel overfitting als underfitting. Overfitting vindt plaats wanneer het model de trainingsgegevens te goed leert en er niet in slaagt te generaliseren naar onzichtbare gegevens. Onderfitting treedt op wanneer het model te eenvoudig is om de onderliggende relaties in de gegevens vast te leggen. Lineaire regressie biedt beperkte verklaringskracht voor complexe relaties tussen variabelen. Voor diepere inzichten kunnen geavanceerdere machine learning-technieken nodig zijn. Conclusie Lineaire regressie is een fundamenteel machine learning-algoritme dat al vele jaren op grote schaal wordt gebruikt vanwege zijn eenvoud, interpreteerbaarheid en efficiëntie. Het is een waardevol hulpmiddel voor het begrijpen van relaties tussen variabelen en het maken van voorspellingen in een verscheidenheid aan toepassingen. Het is echter belangrijk om je bewust te zijn van de beperkingen ervan, zoals de aanname van lineariteit en gevoeligheid voor multicollineariteit. Wanneer deze beperkingen zorgvuldig worden overwogen, kan lineaire regressie een krachtig hulpmiddel zijn voor gegevensanalyse en -voorspelling. Lineaire regressie – Veelgestelde vragen (FAQ's) Wat betekent lineaire regressie in eenvoudige vorm? Lineaire regressie is een machine learning-algoritme onder toezicht dat een continue doelvariabele voorspelt op basis van een of meer onafhankelijke variabelen. Het gaat uit van een lineair verband tussen de afhankelijke en onafhankelijke variabelen en gebruikt een lineaire vergelijking om dit verband te modelleren. Waarom gebruiken we lineaire regressie? Lineaire regressie wordt vaak gebruikt voor: Het voorspellen van numerieke waarden op basis van invoerkenmerken Het voorspellen van toekomstige trends op basis van historische gegevens Het identificeren van correlaties tussen variabelen Het begrijpen van de impact van verschillende factoren op een bepaalde uitkomst Hoe lineaire regressie gebruiken? Gebruik lineaire regressie door een lijn te plaatsen om de relatie tussen variabelen te voorspellen , het begrijpen van coëfficiënten en het maken van voorspellingen op basis van invoerwaarden voor geïnformeerde besluitvorming. Waarom wordt dit lineaire regressie genoemd? Lineaire regressie is genoemd naar het gebruik van een lineaire vergelijking om de relatie tussen variabelen te modelleren, waarbij een rechte lijn wordt weergegeven die past bij de gegevenspunten. Wat zijn voorbeelden van lineaire regressie? Het voorspellen van huizenprijzen op basis van vierkante meters, het schatten van examenscores op basis van studie-uren en het voorspellen van verkopen met behulp van advertentie-uitgaven zijn voorbeelden van toepassingen van lineaire regressie.>