Scikit Learn - Bayesian Ridge Regression

La regressione bayesiana consente a un meccanismo naturale di sopravvivere a dati insufficienti o dati distribuiti male, formulando la regressione lineare utilizzando distributori di probabilità piuttosto che stime puntuali. Si presume che l'output o la risposta "y" derivi da una distribuzione di probabilità piuttosto che stimata come un singolo valore.

Matematicamente, per ottenere un modello completamente probabilistico si assume che la risposta y sia gaussiana distribuita intorno a $ X_ {w} $ come segue

$$ p \ left (y \ arrowvert X, w, \ alpha \ right) = N \ left (y \ arrowvert X_ {w}, \ alpha \ right) $$

Uno dei tipi più utili di regressione bayesiana è la regressione di cresta bayesiana che stima un modello probabilistico del problema di regressione. Qui la priorità per il coefficiente w è data dalla gaussiana sferica come segue:

$$ p \ left (w \ arrowvert \ lambda \ right) = N \ left (w \ arrowvert 0, \ lambda ^ {- 1} I_ {p} \ right) $$

Questo modello risultante è chiamato Bayesian Ridge Regression e in scikit-learn sklearn.linear_model.BeyesianRidge viene utilizzato per la regressione della cresta bayesiana.

Parametri

La tabella seguente è costituita dai parametri utilizzati da BayesianRidge modulo -

Suor n Parametro e descrizione
1

n_iter - int, opzionale

Rappresenta il numero massimo di iterazioni. Il valore predefinito è 300 ma il valore definito dall'utente deve essere maggiore o uguale a 1.

2

fit_intercept - Booleano, opzionale, predefinito True

Decide se calcolare o meno l'intercetta per questo modello. Nessuna intercetta verrà utilizzata nel calcolo, se verrà impostata su false.

3

tol - float, opzionale, default = 1.e-3

Rappresenta la precisione della soluzione e fermerà l'algoritmo se w è convergente.

4

alpha_1 - float, opzionale, default = 1.e-6

È il 1 ° iperparametro che è un parametro di forma per la distribuzione Gamma precedente sul parametro alfa.

5

alpha_2 - float, opzionale, default = 1.e-6

È il 2 ° iperparametro che è un parametro di scala inverso per la distribuzione Gamma prima del parametro alfa.

6

lambda_1 - float, opzionale, default = 1.e-6

È il 1 ° iperparametro che è un parametro di forma per la distribuzione Gamma precedente sul parametro lambda.

7

lambda_2 - float, opzionale, default = 1.e-6

È il 2 ° iperparametro che è un parametro di scala inverso per la distribuzione Gamma prima del parametro lambda.

8

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.

9

compute_score - booleano, opzionale, predefinito = False

Se impostato su true, calcola la verosimiglianza marginale logaritmica ad ogni iterazione dell'ottimizzazione.

10

verbose - Booleano, opzionale, predefinito = False

Per impostazione predefinita, è falso ma se impostato su vero, la modalità dettagliata verrà abilitata durante l'adattamento del modello.

Attributi

La tabella seguente è costituita dagli attributi utilizzati da BayesianRidge modulo -

Suor n Attributi e descrizione
1

coef_ - array, forma = n_features

Questo attributo fornisce i vettori del peso.

2

intercept_ - galleggiante

Rappresenta il termine indipendente nella funzione decisionale.

3

alpha_ - galleggiante

Questo attributo fornisce la precisione stimata del rumore.

4

lambda_ - galleggiante

Questo attributo fornisce la precisione stimata del peso.

5

n_iter_ - int

Fornisce il numero effettivo di iterazioni prese dall'algoritmo per raggiungere il criterio di arresto.

6

sigma_ - array, forma = (n_features, n_features)

Fornisce la matrice varianza-covarianza stimata dei pesi.

7

scores_ - matrice, forma = (n_iter_ + 1)

Fornisce il valore della probabilità marginale logaritmica ad ogni iterazione dell'ottimizzazione. Nel punteggio risultante, l'array inizia con il valore della probabilità marginale del registro ottenuto per i valori iniziali di $ a \: e \: \ lambda $ e termina con il valore ottenuto per $ a \: e \: \ lambda stimati $.

Esempio di implementazione

Il seguente script Python fornisce un semplice esempio di adattamento del modello di regressione della cresta bayesiana utilizzando sklearn BayesianRidge modulo.

from sklearn import linear_model
X = [[0, 0], [1, 1], [2, 2], [3, 3]]
Y = [0, 1, 2, 3]
BayReg = linear_model.BayesianRidge()
BayReg.fit(X, Y)

Produzione

BayesianRidge(alpha_1 = 1e-06, alpha_2 = 1e-06, compute_score = False, copy_X = True,
   fit_intercept = True, lambda_1 = 1e-06, lambda_2 = 1e-06, n_iter = 300,
   normalize = False, tol=0.001, verbose = False)

Dall'output di cui sopra, possiamo controllare i parametri del modello utilizzati nel calcolo.

Esempio

Ora, una volta adattato, il modello può prevedere nuovi valori come segue:

BayReg.predict([[1,1]])

Produzione

array([1.00000007])

Esempio

Allo stesso modo, possiamo accedere al coefficiente w del modello come segue:

BayReg.coef_

Produzione

array([0.49999993, 0.49999993])