Estoy revisando la sección LAB §6.6 sobre Regresión de cresta / lazo en el libro 'Una introducción al aprendizaje estadístico con aplicaciones en R' de James, Witten, Hastie, Tibshirani (2013).
Más específicamente, estoy tratando de aplicar el Ridgemodelo scikit-learn al conjunto de datos 'Hitters' del paquete R 'ISLR'. He creado el mismo conjunto de características que se muestran en el código R. Sin embargo, no puedo acercarme a los resultados del glmnet()modelo. He seleccionado un parámetro de ajuste L2 para comparar. (argumento 'alfa' en scikit-learn).
Pitón:
regr = Ridge(alpha=11498)
regr.fit(X, y)
http://nbviewer.ipython.org/github/JWarmenhoven/ISL-python/blob/master/Notebooks/Chapter%206.ipynb
R:
Tenga en cuenta que el argumento alpha=0en glmnet()significa que debe aplicarse una penalización L2 (regresión de Ridge). La documentación advierte que no se ingrese un valor único para lambda, pero el resultado es el mismo que en ISL, donde se usa un vector.
ridge.mod <- glmnet(x,y,alpha=0,lambda=11498)
¿Qué causa las diferencias?
Editar:
cuando se usa penalized()desde el paquete penalizado en R, los coeficientes son los mismos que con scikit-learn.
ridge.mod2 <- penalized(y,x,lambda2=11498)
Quizás la pregunta también podría ser: '¿Cuál es la diferencia entre glmnet()y penalized()cuando se hace la regresión de Ridge?
Nuevo contenedor de Python para el código Fortran real utilizado en el paquete R glmnet
https://github.com/civisanalytics/python-glmnet
sklearn.linear_model.Ridgerealiza la estimación de interceptación no normalizada (estándar) y la penalización es tal que||Xb - y - intercept||^2 + alpha ||b||^2se minimizab. Puede haber factores1/2o1/n_samplesambos frente a la penalización, lo que hace que los resultados sean diferentes de inmediato. Para descifrar el problema de escala de penalización, establezca la penalización en 0 en ambos casos, resuelva cualquier discrepancia allí y luego verifique qué hace la suma de la penalización. Y por cierto, en mi humilde opinión, aquí es el lugar adecuado para hacer esta pregunta.