Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Lineaire regressie is een centraal model binnen Machine Learning. Om de wiskunde van ML te begrijpen is het een absolute must om dit model - en vooral ook de geassocieerde leeralgoritmes - ten volle te doorgronden. Het model komt uit de statistiek en veronderstelt dat bepaalde target data (โ€œresponsvariabele(n)โ€ genoemd in de statistiek) in lineair verband staan met รฉรฉn of meerdere features (ook wel โ€œpredictorenโ€ genoemd in de de statistiek).

Data simulatieยถ

We beginnen met de simulatie van een simpele situatie. Stel dat er in een ideale wereld (voor koffiehuizen) een lineaire relatie bestaat tussen de grootte van een bestelling en de fooi die klanten erbovenop betalen:

y=b1+b2xy = b_1 + b_2x

waarbij yy de grootte van de fooi is, b1b_1 een basis fooi en b2b_2 een multiplicatie factor voor de prijs van de aankoop.
Het probleem dat we willen oplossen is het achterhalen van b1b_1 en b2b_2.
We verzamelen daarvoor data van 50 aankopen en houden er rekening mee dat er een meetfout zal zijn: de lineaire relatie zal niet altijd perfect zijn.
Ons model voor de data is het volgende:

y=b1+b2x+ey=Xb+e\begin{align} \pmb{y} &= b_1 + b_2\pmb{x} + \pmb{e} \cr \pmb{y} &= \pmb{X}\pmb{b} + \pmb{e} \end{align}

met

X=[1x11x2โ‹ฎโ‹ฎ1x50]\pmb{X} = \begin{bmatrix} 1 & x_1 \cr 1 & x_2 \cr \vdots & \vdots \cr 1 & x_{50} \cr \end{bmatrix}
b=[b1b2]\pmb{b} = \begin{bmatrix} b_1 \cr b_2 \end{bmatrix}

We gaan ervan uit dat ieder data punt een additieve ruis component heeft:

ei=yiโˆ’b1โˆ’b2โˆ—xie_i = y_i - b_1 - b_2*x_i

met als verwachtte waarde 0 bij een oneindig aantal observaties:

E(e)=0E(\pmb{e}) = \pmb{0}

Wat impliceert:

E(y)=XbE(\pmb{y}) = \pmb{X}\pmb{b}

Om data te simuleren gebruikten we de volgende waarden voor de modelparameters:

b1=0.50b2=0.15\begin{align} b_1 &= 0.50 \cr b_2 &= 0.15 \end{align}

De ruis simuleren we door steekproeven te nemen uit een normale (Gauss) verdeling met gemiddelde 0 en standaardafwijking ฯƒ=0.30\sigma=0.30[1]:

eiโˆผN(0,0.302)e_i \sim \mathcal{N}(0, 0.30^2)

Voor de grootte van de orders x\pmb{x} te simuleren, trekken we 50 samples uit een uniforme verdeling[1] met de volgende parameters.

xiโˆผU(3,25)x_i \sim \mathcal{U}(3, 25)
Source
Source
โ˜• COFFEE SHOP TIPPING ANALYSIS
True relationship: Tip = $0.50 + 15.0% ร— Order Total
We collected data from 50 customers
Order range: $3.96 - $24.46
Tip range: $0.94 - $3.90
/opt/venv/lib/python3.10/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 9749 (\N{HOT BEVERAGE}) missing from font(s) Liberation Sans.
  fig.canvas.print_figure(bytes_io, **kw)
<Figure size 1000x600 with 1 Axes>

๐Ÿ“Š Quick stats:
Average tip percentage: 19.1%
Most generous tip: $3.90 (on $21.31 order)
Most modest tip: $0.94 (on $5.86 order)

Loss functie: SSESSEยถ

Om het leeralgoritme sturen, kiezen we hier voor de Sum of Squared Errors (SSESSE) functie[2]:

LSSE(f(x);y)=โˆ‘i=1M(yiโˆ’f(xi))2\mathcal{L}_{SSE}(f(\pmb{x}); \pmb{y}) = \sum_{i=1}^M(y_i-f(x_i))^2

waarbij

f(x)=Xb^=y^f(\pmb{x}) = \pmb{X}\pmb{\hat{b}} = \hat{\pmb{y}}

De vector y\pmb{y}-hoedje (y^\hat{\pmb{y}}) staat voor onze voorspelde waarden voor de eigenlijke fooien y\pmb{y} op basis van onze schattingen voor de parameters b^=[b1^b2^]T\hat{\pmb{b}} = \begin{bmatrix} \hat{b_1} & \hat{b_2} \end{bmatrix}^T (de argumenten van de functie f(x)f(\pmb{x})) op een bepaald moment in het leerproces.

De bedoeling van het leeralgoritme is dus om op zoek te gaan naar waarden voor de model parameters b\pmb{b} die LSSE\mathcal{L}_{SSE} minimaliseren.

Source
Source
<Figure size 1000x600 with 1 Axes>
๐Ÿ“Š SSE Loss with guessed parameters (b1=$1.50, b2=0.1): 27.65

Visualisatie van het SSESSE oppervlakยถ

We kunnen in deze รฉรฉnvoudige simulatie met 2 parameters (b1b_1 en b2b_2), de SSESSE loss functie voorstellen als een 3D oppervlak: {x:b1,y:b2,z:SSE}\{x: b_1, y: b_2, z: SSE\}. We maken:

  1. een grid van (b1,b2)(b_1, b_2) coรถrdinaten (x,y)(x, y),

  2. berekenen de overeenkomstige SSESSE (als zz-coรถrdinaat) en

  3. stellen de resulterende 3D coรถrdinaten voor als een oppervlak.

Source
Loading...
Source
Loading...
Source
Loading...

Voordeelยถ

Geen complexe wiskunde nodig.

Nadeelยถ

We weten normaal niet op voorhand in welke range we moeten werken voor een bepaalde parameter. Zeker wanneer het aantal parameters stijgt, wordt het snel een onmogelijke opdracht om grid search toe te passen - ook vanuit computationeel perspectief. Je komt de techniek het vaakst tegen bij hyper parameter tuning als het aantal hyper parameters en mogelijke hyper parameter waarden beperkt is.

Footnotesยถ
  1. We komen hierop terug in de secties over probabiliteit. De parameter voor de normaalverdeling is de gekwadrateerde standaardafwijking of de variantie ฯƒ2\sigma^2.

  2. Zoals gezien in de cursus ML Principles

  3. Zogenoemde adjusted R2R^2.