Me gustaría obtener los coeficientes para el problema LASSO
El problema es que las funciones glmnet y lars dan respuestas diferentes. Para la función glmnet pido los coeficientes de en lugar de solo λ , pero aún obtengo respuestas diferentes.
¿Se espera esto? ¿Cuál es la relación entre los lars y glmnet λ ? Entiendo que glmnet es más rápido para los problemas de LASSO, pero me gustaría saber qué método es más poderoso.
deps_stats Me temo que el tamaño de mi conjunto de datos es tan grande que LARS no puede manejarlo, mientras que, por otro lado, glmnet puede manejar mi gran conjunto de datos.
mpiktas Quiero encontrar la solución de (Y-Xb) ^ 2 + L \ sum | b_j | pero cuando le pregunto a los dos algoritmos (lars y glmnet) sus coeficientes calculados para esa L en particular, obtengo respuestas diferentes ... y me pregunto si eso es correcto / esperado. o simplemente estoy usando una lambda incorrecta para las dos funciones.
fuente
glmnet
y probablemente tampoco una implementación de LARS. Proporcionan una amplia gama de soluciones a lo largo del espectro de sesgo frente a varianza. Lo que dificulta la comparación de los coeficientes reales. Pero aún así, las mismas variables probablemente deberían volverse distintas de cero en un orden similar.Respuestas:
En mi experiencia, LARS es más rápido para problemas pequeños, problemas muy escasos o problemas muy 'amplios' (muchas más funciones que muestras). De hecho, su costo computacional está limitado por la cantidad de características seleccionadas, si no calcula la ruta de regularización completa. Por otro lado, para grandes problemas, glmnet (optimización de descenso coordinado) es más rápido. Entre otras cosas, el descenso coordinado tiene un buen patrón de acceso a datos (amigable con la memoria) y puede beneficiarse de la redundancia en los datos en conjuntos de datos muy grandes, ya que converge con ajustes parciales. En particular, no sufre de conjuntos de datos altamente correlacionados.
La conclusión de que nosotros (los desarrolladores principales de scikit-learn ) también hemos llegado es que, si no tiene un conocimiento a priori sólido de sus datos, debería usar glmnet (u optimización de descenso coordinado) para hablar sobre un algoritmo que una implementación).
Se pueden comparar puntos de referencia interesantes en la tesis de Julien Mairal:
http://www.di.ens.fr/~mairal/resources/pdf/phd_thesis.pdf
Sección 1.4, en particular 1.4.5 (página 22)
Julien llega a conclusiones ligeramente diferentes, aunque su análisis del problema es similar. Sospecho que esto se debe a que estaba muy interesado en problemas muy amplios.
fuente
LASSO no es único en el caso de que múltiples características tengan una colinealidad perfecta. Aquí hay un experimento mental simple para probarlo.
fuente
Lars y Glmnet ofrecen diferentes soluciones para el problema de Lasso, ya que utilizan funciones objetivas ligeramente diferentes y diferentes estandarizaciones de los datos. Puede encontrar el código de detalles para la reproducción en la pregunta relacionada ¿ Por qué Lars y Glmnet ofrecen diferentes soluciones para el problema de Lasso?
fuente