Regressione lineare

Teoria

Parliamo oggi della regressione lineare, metodo di fondamentale importanza per moltissimi algoritmi di machine learning.

Nell’articolo precedente sull’apprendimento supervisionato, ho accennato con un esempio alla modalità che, facendo uso della regressione lineare, si può utilizzare per stimare il costo di una casa in funzione della sua superficie, avendo a disposizione alcuni dati sulla vendita di altre case.

In questo articolo, vorrei chiarire un po’ più dal punto di vista matematico il funzionamento della regressione lineare. Premetto che le conoscenze matematiche richieste sono davvero di base, anche perché non vuole essere un trattato scientifico 🙂

Innanzi tutto, partiamo dalla definizione che Wikipedia dà su questa metodologia:

In statistica la regressione lineare rappresenta un metodo di stima del valore atteso condizionato di una variabile dipendente, o endogena, dati i valori di altre variabili indipendenti, o esogene.

In parole povere, attraverso la regressione lineare possiamo stimare il valore di un “qualcosa” che varia in funzione di “qualcos’altro”. Nel nostro esempio precedente, abbiamo supposto che il costo della casa (variabile dipendente) variasse in funzione della superficie della stessa (variabile indipendente).

La regressione lineare può essere detta “semplice” (o univariata), se esiste una sola variabile indipendente, oppure “multipla” (o multivariata), se ne esistono più d’una (ad esempio, potremmo dire che il costo è funzione anche della posizione geografica).

Nel caso particolare della regressione lineare, stiamo dando per assunto che vi sia una relazione lineare tra le variabili indipendenti e la variabile dipendente. Per semplicità di trattazione, tratterò di qui in avanti solamente il caso di regressione lineare semplice.

Ipotesi

Dal momento che abbiamo supposto che sussistere una relazione lineare tra la variabile indipendente e la variabile dipendente, allora, “matematicamente scrivendo”, sosteniamo:

y = mx + q

Dove m è il coefficiente angolare della retta (in altre parole quanto è “pendente”), mentre q è il termine noto. Questi due parametri che determinano una ed una sola retta, hanno un preciso significato, anche geometrico, che esula da questa trattazione. Vi invito, se avete curiosità, a leggere la trattazione a tal proposito su Wikipedia.

Questa funzione viene definita, nell’ambito del machine learning, la funzione ipotesi. Il nome non è molto azzeccato, ma tant’è…

A questo punto, se ricordate, abbiamo detto che faremo uso di questo metodo nel caso dell’apprendimento supervisionato, giusto? Ciò significa che abbiamo a disposizione un set di dati di apprendimento. Tale set contiene dei valori di y, dati i valori di x. Nel nostro esempio, infatti, abbiamo una tabella che ci dà alcuni casi di superficie e il relativo costo.

Quello che noi vogliamo ottenere, attraverso il metodo della regressione lineare, è la retta migliore possibile che rende minimo l’errore nelle stime che faremo. Come facciamo a trovarla?

Beh, se ci fermiamo un attimo a pensare, possiamo determinare diverse modalità per determinare quanto sia l’errore nella stima. Ad esempio, potremmo dire che è più “pesante” un errore in difetto nella stima (visto che vogliamo vendere) piuttosto che in eccesso. Oppure il viceversa. Oppure potremmo inventarci tantissime altre modalità. Questa che ho molto brutalmente chiamato “modalità”, in gergo viene denominata funzione di costo.

Funzione di costo

La funzione di costo è una funzione che determina l’accuratezza della nostra ipotesi. Data ogni possibile ipotesi (che rispetti il modello lineare che ci siamo dati all’inizio), vogliamo quindi trovare quella migliore (detta “ottima”), ovvero quella che ci permette di fare stime più precise, sempre basandoci sui dati che sono in nostro possesso.

Se guardiamo attentamente la forma della nostra ipotesi, vediamo che ne possiamo “immaginare” tantissime (sono infinite!), una per ogni combinazione dei due parametri coefficiente angolare e termine noto.

Ad esempio:

  • se m = 1 e q = 0, la nostra ipotesi è: y = x (una retta a 45°, passante per l’origine)
  • se m = 0 e q = 1, la nostra ipotesi è: y = 1 (una retta completamente orizzontale)
  • se m = 2 e q = 5, la nostra ipotesi è: y = 2x + 5

e così via, all’infinito, per ogni combinazione di m e q.

Il problema, quindi, può essere riguardato come l’individuazione del valore dei due parametri m e q che rendono minore l’errore nella stima.

Errore quadratico medio

La “modalità” che useremo per valutare le nostre ipotesi è calcolare l’errore quadratico medio tra la stima ottenuta attraverso l’ipotesi e il valore effettivo.

In altre parole, per ogni ipotesi e per ogni dato all’interno del nostro set:

  1. calcoliamo la stima della variabile dipendente. Chiamiamo questo valore y’
  2. sottraiamo y’ alla y che abbiamo come dato di partenza
  3. questa differenza la eleviamo al quadrato. Chiamiamo questo valore e
  4. sommiamo tutti gli e ottenuti per ogni dato del nostro set
  5. dividiamo questa somma per il numero di elementi all’interno del nostro set (facciamo la media)
  6. questa media, che divideremo ancora 2 per ragioni che vedremo più avanti, è il valore dell’accuratezza della nostra ipotesi.
  7. l’ipotesi che avrà questa media (accuratezza) minore, è la migliore

Che ne pensate? Semplice no?

Facciamo un esempio, con un paio di ipotesi, (uso i dati che avevo indicato l’altra volta, prendendo solo le migliaia dei prezzi). Utilizziamo, in questo esempio, l’ipotesi y = x (ovvero m = 1 e q = 0).

  • x = 58, y = 96€
    se dovessimo stimare y con la nostra ipotesi y’ = 58
    calcoliamo la differenza: 58-96= -38
    eleviamo al quadrato: e = 1444
  • x = 135, y = 230€
    y’ = 135
    differenza: 135 – 230 = -95
    errore: e = 9025
  • x = 75, y = 85
    y’ = 75
    differenza: 75 – 85 = -10
    errore: e = 100

Supponendo di avere solo questi tre dati, l’accuratezza (inteso come scarto quadratico medio) di questa ipotesi sarebbe:

(1444 + 9025 + 100) / (3 * 2) = 1761,5
dove 3 è il numero dei campioni che abbiamo utilizzato
mentre 2 è il divisore, il cui significato sarà più chiaro più avanti

Come facciamo, ora, a calcolare tutte le infinite accuratezze di tutte le infinite ipotesi per tutte le infinite combinazioni di q?

Per ora non c’è molta alternativa che mettervi di buona volontà e, a mano, calcolarle tutte 🙂 Beh dai, la prossima volta vi farò vedere l’algoritmo di discesa del gradiente e vedrete che sarà più semplice e, soprattutto, avremo una risposta certa e ottima, senza dover fare milioni di calcoli!

Strumento online

Online è disponibile, fra i mille che esistono, Linear Regression Calculator che permette, inserendo i dati, di determinare la retta ottima.

Inserendo i dati, nella forma “x,y” e separando i vari dati su ogni riga, è possibile ottenere i due parametri q che rendono ottima la stima. Nel sito vengono chiamati, rispettivamente, b (Slope)a (Intercept).

Esempio, inserendo i nostri dati:
58,96.000
135,230.000
75,85.000
55,113.000
120,235.000
70,70.000
67,98.000
50,50.000
90,100.000
100,125.000
110,150.000

Otteniamo questi valori:
Intercept (a): -34.357902769673
Slope (b): 1.8601472370606

Che corrispondono a questa retta.

linear-regression-image

A presto,
Marco

Please follow and like us:
No Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

Teoria
Nonna, ti spiego come funziona una rete neurale

È da tempo che penso di scrivere articoli nella forma “Nonna, ti spiego come” e devo dire che la cosa mi ispira davvero tanto. Riuscire a spiegare un concetto complesso ad una figura completamente ignorante in materia è un’attività difficilissima, se non impossibile. Però, anche come tributo a mia nonna, …

Teoria
I 5 algoritmi di Machine Learning più utilizzati

Prendendo spunto da un recente articolo, elenco in rassegna i 5 algoritmi più utilizzati nell’ambito del machine learning, secondo l’autore. È importante conoscere e “sporcarsi le mani” con questi algoritmi, poiché si presume che nel prossimo futuro, oltre il 25% degli attuali lavori sarà soppiantato da algoritmi di machine learning. Eccoli, riassunti …

Teoria
Un po’ di gergo del Machine Learning

Proprio oggi mi sono imbattuto in un interessantissimo articolo su Linkedin Pulse che aveva come argomento il gergo che viene solitamente utilizzato nell’ambito del machine learning. Trovo necessario che, chiunque decida di avvicinarsi a questa branca interessantissima della matematica/informatica, debba necessariamente avere padronanza del linguaggio tecnico per poter comprendere a fondo …

Social media & sharing icons powered by UltimatelySocial