Wenn ich es richtig verstehe, verwendet glmnet den zyklischen Koordinatenabstieg nicht nur für Lasso- und Gummibänder, sondern auch für die Ridge-Regression.
Warum wird dieser Algorithmus verwendet, der manchmal leicht ungenaue Ergebnisse liefert, obwohl tatsächlich eine einfache Lösung in geschlossener Form verfügbar ist?
Vielen Dank im Voraus!
lasso
regularization
ridge-regression
glmnet
elastic-net
Benkyozamurai
quelle
quelle
Antworten:
Ich denke, das liegt an der Geschwindigkeit. Der zyklische Koordinatenabstieg findet nicht die genaue Lösung in endlicher Zeit, aber er ist schneller, nicht nur für ein Gitter vonλ ist aber auch für eine Single λ .
Betrachten Sie die Aufgabe, die Gratregression für eine einzelne zu lösenλ mit einer Datenmatrix der Größe n × p . Ich glaube, die optimale Laufzeit für eine exakte Gratregression istO(n2p) wenn n<p und O(np2) wenn n>p . Eine Referenz finden Sie in Murphy, Maschinelles Lernen , Abschnitt 7.5.2.
Mit dem Algorithmus für den zyklischen Koordinatenabstieg "ein vollständiger Zyklus durch allep Variablen Kosten O(pN) Operationen "(S. 6, Friedman et al. 2010, https://www.jstatsoft.org/article/view/v033i01 ). Man kann dann eine Anzahl von Zyklen angebenc mit c≪min(n,p) um eine schnellere Big-Oh-Laufzeit für eine Single zu bekommen λ . Zum Lösen über vieleλ Die
glmnet
Methode sollte sich durch Warmstarts weiter verbessern.quelle
Es gibt andere Löser für Ridge, und der Zweck des glmnet-Lösers besteht genau darin, CCD aus Gründen der Traktabilität und Geschwindigkeit zu verwenden. Sie verwenden für alle Elasticnet-Lösungen den gleichen Code . Elasticnet enthält Grat und LASSO nach Einstellungλ1 oder λ2 zu 0 .
quelle