Approfondimento della regressione lineare multipla
Nell'articolo precedente, abbiamo definito i concetti di base della regressione lineare, inclusa la regressione lineare semplice, le funzioni di costo, la matematica e l'equazione direttrice di una retta. Se hai saltato quell'articolo, vedi il link qui sotto per maggiori informazioni.
Regressione lineare in profonditàIn questo articolo, ci concentreremo su un altro tipo di regressione lineare chiamata regressione lineare multipla. La regressione lineare multipla è una tecnica statistica utilizzata per modellare la relazione tra una variabile di risposta e più variabili predittive. La variabile di risposta è anche nota come variabile dipendente e le variabili predittive sono note come variabili indipendenti. La regressione lineare multipla può essere utilizzata per fare previsioni sulla variabile di risposta in base alle variabili predittive.
Tuttavia, è importante notare che le ipotesi di linearità e indipendenza dagli errori devono essere soddisfatte affinché il modello sia valido. La regressione lineare multipla è abbastanza simile alla regressione lineare semplice, ad eccezione di alcune differenze, di cui parleremo in questo articolo. L'obiettivo della regressione lineare multipla è trovare la linea di adattamento migliore (o iperpiano in più dimensioni) che descriva la relazione tra la variabile di risposta e le variabili predittive. La relazione tra la variabile di risposta e le variabili predittive può essere descritta come un'equazione matematica:
Dove:
- y è la risposta o variabile dipendente,
- x_1, x_2, …, x_n sono il predittore o variabili indipendenti,
- x_0 è l'intercetta y o nota come bias,
- e w_1, w_2, …, w_n sono i coefficienti per ogni variabile predittore,
- il termine sinistro dell'equazione (yhat) rappresenta il valore che prevediamo in base alle variabili di input (predittore) x.
Dove:
- w^T è la trasposizione del vettore dei coefficienti w (noti anche come “pesi”),
- x è il vettore delle variabili predittive,
- b è l'intercetta y o nota come bias,
- Σ denota la somma su tutte le osservazioni,
- e il termine sinistro dell'equazione (yhat) rappresenta il valore che prevediamo in base alle variabili di input (predittore) x.
Il processo di regressione lineare multipla comporta la ricerca dei valori di w e b. Per trovare i valori, dobbiamo definire la funzione di costo per la regressione lineare multipla e notare che l'etichetta della funzione di costo è espressa dalla lettera E. La funzione di costo è definita come:
Analogamente alla semplice regressione lineare, dobbiamo eseguire derivazioni parziali della funzione di costo per trovare i valori ottimali di w e b. Tuttavia, per derivare espressioni per trovare i valori ottimali, sarebbe più facile per noi eseguire la derivazione utilizzando tecniche di ottimizzazione come la discesa del gradiente (GD), la discesa del gradiente stocastico (SGD) o il metodo di Newton (NM). Se vuoi saperne di più sulle tecniche di ottimizzazione dai un'occhiata a questo articolo.
La funzione di costo della discesa del gradiente per la regressione lineare multipla è definita come:
Dove:
- (y — Xw — b) è un (nx 1) vettore di residui,
- (espressione)^T denota la trasposizione di un vettore o di una matrice.
Dopo questa derivazione, siamo in grado di derivare un'espressione per trovare i coefficienti.
È importante notare che per implementarlo è necessaria l'inversa della matrice X^TX e, se non è invertibile, è possibile utilizzare tecniche di regolarizzazione come cresta o lazo per superare il problema della non invertibilità. Oltre a trovare il valore ottimale per le variabili w, dobbiamo trovare un'espressione per trovare il valore ottimale del bias. Tuttavia, il solito valore di bias è 1. Per completare questo articolo, eseguiremo una derivata parziale della funzione di costo rispetto al parametro b per trovare il valore ottimale.
Dove:
- (1) è un (D x 1) vettore di uno,
- D è il numero di uno nel vettore.
import numpy as np
X = [[1, 2, 1], [2, 4, 1], [1, 2, 1], [1, 2, 1], [1, 4, 1]]
Y = [1, 2, 3, 4, 7]
X = np.array(X)
Y = np.array(Y)
w = np.linalg.solve(np.dot(X.T, X), np.dot(X.T, Y))
Yhat = np.dot(X, w)
d1 = Y - Yhat
d2 = Y - Y.mean()
r2 = 1 - d1.dot(d1) / d2.dot(d2)
from sklearn import linear_model
import numpy as np
Y = [1, 2, 3, 4, 7]
X = [[1, 2, 1], [2, 4, 1], [1, 2, 1], [1, 2, 1], [1, 4, 1]]
X = np.array(X)
Y = np.array(Y)
regr = linear_model.LinearRegression()
regr.fit(X, Y)
regr.score(X,Y)
predictedValue = regr.predict([[4, 5, 1]])
Regressione logistica
Se ti piace l'articolo, assicurati di seguirmi per vedere i miei nuovi articoli.

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































