Scikit Learn - Regresión de la cresta bayesiana

La regresión bayesiana permite que un mecanismo natural sobreviva a datos insuficientes o datos mal distribuidos mediante la formulación de regresión lineal utilizando distribuidores de probabilidad en lugar de estimaciones puntuales. Se supone que la salida o respuesta 'y' se extrae de una distribución de probabilidad en lugar de estimarse como un valor único.

Matemáticamente, para obtener un modelo completamente probabilístico, se supone que la respuesta y es gaussiana distribuida alrededor de $ X_ {w} $ de la siguiente manera

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

Uno de los tipos más útiles de regresión bayesiana es la regresión Bayesian Ridge que estima un modelo probabilístico del problema de regresión. Aquí, la prioridad para el coeficiente w viene dada por gaussiano esférico de la siguiente manera:

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

Este modelo resultante se llama Regresión de la cresta bayesiana y en scikit-learn sklearn.linear_model.BeyesianRidge El módulo se utiliza para la regresión de las crestas bayesianas.

Parámetros

La siguiente tabla consta de los parámetros utilizados por BayesianRidge módulo -

No Señor Descripción de parámetros
1

n_iter - int, opcional

Representa el número máximo de iteraciones. El valor predeterminado es 300, pero el valor definido por el usuario debe ser mayor o igual a 1.

2

fit_intercept - Booleano, opcional, predeterminado True

Decide si calcular la intersección para este modelo o no. No se utilizará ninguna intersección en el cálculo, si se establece en falso.

3

tol - flotante, opcional, predeterminado = 1.e-3

Representa la precisión de la solución y detendrá el algoritmo si w ha convergido.

4

alpha_1 - flotante, opcional, predeterminado = 1.e-6

Es el primer hiperparámetro que es un parámetro de forma para la distribución Gamma antes del parámetro alfa.

5

alpha_2 - flotante, opcional, predeterminado = 1.e-6

Es la 2 nd hiperparámetro que es un parámetro inversa escala para la distribución Gamma previo sobre el parámetro alfa.

6

lambda_1 - flotante, opcional, predeterminado = 1.e-6

Es el primer hiperparámetro que es un parámetro de forma para la distribución Gamma antes del parámetro lambda.

7

lambda_2 - flotante, opcional, predeterminado = 1.e-6

Es la 2 nd hiperparámetro que es un parámetro inversa escala para la distribución Gamma previo sobre el parámetro lambda.

8

copy_X - Booleano, opcional, predeterminado = Verdadero

De forma predeterminada, es verdadero, lo que significa que se copiará X. Pero si se establece en falso, X puede sobrescribirse.

9

compute_score - booleano, opcional, predeterminado = Falso

Si se establece en verdadero, calcula la probabilidad marginal logarítmica en cada iteración de la optimización.

10

verbose - Booleano, opcional, predeterminado = Falso

De forma predeterminada, es falso, pero si se establece en verdadero, el modo detallado se habilitará mientras se ajusta el modelo.

Atributos

La siguiente tabla consta de los atributos utilizados por BayesianRidge módulo -

No Señor Atributos y descripción
1

coef_ - matriz, forma = n_features

Este atributo proporciona los vectores de peso.

2

intercept_ - flotar

Representa el término independiente en función de decisión.

3

alpha_ - flotar

Este atributo proporciona la precisión estimada del ruido.

4

lambda_ - flotar

Este atributo proporciona la precisión estimada del peso.

5

n_iter_ - int

Proporciona el número real de iteraciones tomadas por el algoritmo para alcanzar el criterio de parada.

6

sigma_ - matriz, forma = (n_features, n_features)

Proporciona la matriz de varianza-covarianza estimada de los pesos.

7

scores_ - matriz, forma = (n_iter_ + 1)

Proporciona el valor de la probabilidad marginal logarítmica en cada iteración de la optimización. En la puntuación resultante, la matriz comienza con el valor de la probabilidad marginal logarítmica obtenido para los valores iniciales de $ a \: y \: \ lambda $, y termina con el valor obtenido para $ a \: y \: \ lambda estimados PS

Ejemplo de implementación

La siguiente secuencia de comandos de Python proporciona un ejemplo simple de cómo ajustar el modelo de regresión de la cresta bayesiana usando sklearn BayesianRidge módulo.

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)

Salida

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)

A partir de la salida anterior, podemos verificar los parámetros del modelo utilizados en el cálculo.

Ejemplo

Ahora, una vez ajustado, el modelo puede predecir nuevos valores de la siguiente manera:

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

Salida

array([1.00000007])

Ejemplo

De manera similar, podemos acceder al coeficiente w del modelo de la siguiente manera:

BayReg.coef_

Salida

array([0.49999993, 0.49999993])