Regressione lineare
- By : Marco Tibaldeschi
- Category : 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:
- calcoliamo la stima della variabile dipendente. Chiamiamo questo valore y’
- sottraiamo y’ alla y che abbiamo come dato di partenza
- questa differenza la eleviamo al quadrato. Chiamiamo questo valore e
- sommiamo tutti gli e ottenuti per ogni dato del nostro set
- dividiamo questa somma per il numero di elementi all’interno del nostro set (facciamo la media)
- questa media, che divideremo ancora 2 per ragioni che vedremo più avanti, è il valore dell’accuratezza della nostra ipotesi.
- 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 m e 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 m e q che rendono ottima la stima. Nel sito vengono chiamati, rispettivamente, b (Slope) e 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.
A presto,
Marco
No Comments