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_