Scikit Learn - Regressione lineare
È uno dei migliori modelli statistici che studia la relazione tra una variabile dipendente (Y) con un dato insieme di variabili indipendenti (X). La relazione può essere stabilita con l'aiuto di una linea migliore.
sklearn.linear_model.LinearRegression è il modulo utilizzato per implementare la regressione lineare.
Parametri
La tabella seguente contiene i parametri utilizzati da Linear Regression modulo -
Suor n | Parametro e descrizione |
---|---|
1 | fit_intercept - Booleano, opzionale, predefinito True Utilizzato per calcolare l'intercetta per il modello. Nessuna intercettazione verrà utilizzata nel calcolo se impostata su false. |
2 | normalize - Booleano, opzionale, predefinito False Se questo parametro è impostato su True, il regressore X verrà normalizzato prima della regressione. La normalizzazione verrà effettuata sottraendo la media e dividendola per la norma L2. Se fit_intercept = False, questo parametro verrà ignorato. |
3 | copy_X - Booleano, opzionale, predefinito True Per impostazione predefinita, è vero, il che significa che X verrà copiato. Ma se è impostato su false, X potrebbe essere sovrascritto. |
4 | n_jobs - int o None, opzionale (default = None) Rappresenta il numero di lavori da utilizzare per il calcolo. |
Attributi
La tabella seguente è costituita dagli attributi utilizzati da Linear Regression modulo -
Suor n | Attributi e descrizione |
---|---|
1 | coef_ - array, forma (n_features,) o (n_targets, n_features) Viene utilizzato per stimare i coefficienti per il problema di regressione lineare. Sarebbe un array 2D di forma (n_targets, n_features) se vengono passati più target durante l'adattamento. Ex. (y 2D). D'altra parte, sarebbe un array 1D di lunghezza (n_features) se viene passato un solo obiettivo durante l'adattamento. |
2 | Intercept_ - array Questo è un termine indipendente in questo modello lineare. |
Esempio di implementazione
Innanzitutto, importa i pacchetti richiesti -
import numpy as np
from sklearn.linear_model import LinearRegression
Ora, fornisci i valori per la variabile indipendente X -
X = np.array([[1,1],[1,2],[2,2],[2,3]])
Successivamente, il valore della variabile dipendente y può essere calcolato come segue:
y = np.dot(X, np.array([1,2])) + 3
Ora, crea un oggetto di regressione lineare come segue:
regr = LinearRegression(
fit_intercept = True, normalize = True, copy_X = True, n_jobs = 2
)
.fit(X,y)
Utilizzare il metodo prediction () per prevedere utilizzando questo modello lineare come segue:
regr.predict(np.array([[3,5]]))
Produzione
array([16.])
Esempio
Per ottenere il coefficiente di determinazione della previsione possiamo utilizzare il metodo Score () come segue:
regr.score(X,y)
Produzione
1.0
Esempio
Possiamo stimare i coefficienti utilizzando l'attributo denominato 'coef' come segue:
regr.coef_
Produzione
array([1., 2.])
Esempio
Possiamo calcolare l'intercetta, ovvero il valore medio atteso di Y quando tutti gli X = 0, utilizzando l'attributo denominato 'intercetta' come segue:
In [24]: regr.intercept_
Output
3.0000000000000018
Esempio di codice completo di implementazione
import numpy as np
from sklearn.linear_model import LinearRegression
X = np.array([[1,1],[1,2],[2,2],[2,3]])
y = np.dot(X, np.array([1,2])) + 3
regr = LinearRegression(
fit_intercept = True, normalize = True, copy_X = True, n_jobs = 2
).fit(X,y)
regr.predict(np.array([[3,5]]))
regr.score(X,y)
regr.coef_
regr.intercept_