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])