¿Por qué los lars y glmnet dan diferentes soluciones? ¿Cuál es mejor?

Ambos métodos pueden adaptarse al Lazo, en un rango de parámetros de ajuste, para un modelo lineal estándar. Ambos comienzan desde el modelo nulo (todos ceros) y lentamente agregan más predictores. Defina un “punto de cambio” para que sea un parámetro de ajuste en el que un nuevo término ingrese al modelo; en este punto de cambio, el nuevo término sigue siendo cero. Sin embargo, cuando el modelo crezca un poco más, entrará este término. El algoritmo de Lars encuentra exactamente estos puntos de cambio. Cualquier modelo entre estos puntos de cambio se puede encontrar exactamente (hasta un error numérico) mediante el uso de interpolación lineal. Glmnet no encuentra estos puntos de cambio. En cambio, en la configuración predeterminada, encuentra una secuencia de 100 modelos que se eligen de una manera más relacionada con la pérdida Y – X \ beta. Me parece más agradable a este respecto.

Sin embargo, hay dos razones por las que glmnet claramente supera los niveles anteriores porque se ajusta a una clase más amplia de funciones objetivas. Primero, puede encajar en “modelos lineales generalizados penalizados” (de ahí “glm”). En segundo lugar, puede incorporar una regularización de Tikhonov, o penalización de “cresta”, de manera análoga a la red elástica (de ahí la “red”).

Si su variable de resultado (“y”) es un recuento o una variable binaria, claramente querrá usar las capacidades del modelo lineal generalizado dentro de glmnet; vea pensar “función de enlace” en la documentación. La segunda ventaja, la penalización neta elástica, a veces puede mejorar la precisión de la predicción. Creo que esto está sintonizado con \ alpha en la documentación de glmnet.

Una última cosa: descubrí que glmnet se ejecuta un poco más rápido en R. Entonces, para simulaciones, es un poco más fácil.

Agregando a la respuesta de Karl: además de usar diferentes algoritmos, hay una diferencia en la normalización de la función objetivo entre lars y glmnet. Andre en stats.stackexchange tiene una buena explicación con un código de ejemplo aquí: ¿Por qué Lars y Glmnet ofrecen diferentes soluciones para el problema de Lasso?

En la práctica, descubrí que los lars fallan sin gracia y con frecuencia, además de ser lentos. Si se trata de algo más que un análisis único, probablemente desee seguir con glmnet.

More Interesting

¿El aprendizaje automático es un comienzo de invasión de estadísticas?

Visión por computadora: ¿Cuáles son algunos problemas de investigación abierta en la recuperación de imágenes basada en contenido?

¿Es posible detectar una estructura de acordes en una canción usando el aprendizaje profundo? Si es así, ¿cómo?

¿Puede el aprendizaje automático ayudarnos a comprender el cerebro humano?

¿Qué factores además del conjunto de datos afectan cómo se elige el tamaño de lote para el descenso de gradiente estocástico (SGD) mini-lote?

¿Cuáles son algunas buenas técnicas para la clasificación / segmentación de datos de series temporales?

¿Cómo se glorifican los métodos del kernel en la coincidencia de plantillas?

¿Cómo utiliza Quora el aprendizaje automático en 2015?

¿Cuál es la diferencia entre CNN y RNN?

¿Se puede entrenar la imagen usando la función de activación?

¿Cuáles son los pros y los contras del aprendizaje en línea y fuera de línea? ¿En qué escenarios son útiles cada uno?

¿Qué tan popular y extendido es el aprendizaje automático en África?

¿Cuál es una buena manera de elegir los puntos iniciales de los grupos de k en el grupo de medios k?

¿Cuál es la mejor manera de combinar filtrado colaborativo y recomendaciones basadas en contenido?

¿Puedo confiar en un modelo de clasificación con validación cruzada y precisión de prueba decentes incluso si el número de observaciones es menor que el de las características?