¿GLMNET o LARS para calcular las soluciones LASSO?


13

Me gustaría obtener los coeficientes para el problema LASSO

||YXβ||+λ||β||1.

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.λ/||Y||λ

¿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.


1
proporcione un ejemplo que ilustre su problema. Además, ¿cómo define el poder del algoritmo?
mpiktas

1
He usado los paquetes glmnet y lars en un par de proyectos. En mi experiencia limitada, he tenido MUCHOS problemas al implementar glmnet. Creo que glmnet necesita algunas correcciones de errores con respecto al tipo de variables utilizadas en el marco de datos. Además, glmnet tiene documentación confusa. Terminé usando lars, y quedé muy satisfecho con los resultados. No importa el tamaño de su problema, creo que los lars pueden manejarlo.
deps_stats

"El problema es que las funciones glmnet y lars dan respuestas diferentes". Tengo el mismo problema. Alguna respuesta?
conceder

¿Drásticamente diferentes respuestas para coeficientes? Y solo por leer la publicación original, realmente no deberías pedir una sola solución lambda glmnety 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.
Shea Parkes

Respuestas:


14

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.


La mayoría de sus respuestas se hacen CW (aquí, pero también en metaoptimize.com/qa) ... ¿Alguna razón por la cual?
chl

1
Porque creo que es bueno que la gente pueda corregir errores tipográficos, palabras incorrectas ... Me gusta la idea de mejoras continuas de las respuestas. ¿Esto va en contra de las mejores prácticas?
Gael Varoquaux el

2
Arreglé dos o tres errores tipográficos al pasar. ¡Nada que ver con CW per se, a menos que esté pensando en la menor representación requerida para editar su publicación! Sin embargo, los usuarios pueden sugerir cualquier edición; pero al hacer su respuesta, CW no le permitirá ganar reputación de ellos. Supongo que no buscas representante, pero como tus respuestas siempre fueron bien formuladas, me preguntaba ... Saludos.
chl

1

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.

yx1x2yx1x2yx1x2β1=1Pβ2=0Pβ1=0β21P


2
@dsmcha, lamento decir esto, pero no creo que me guste demasiado ese ejemplo. La respuesta es idéntica a dos de los predictores? Eso es más que patológico, en mi opinión.
cardenal

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.