如果我理解正确,glmnet 不仅将循环坐标下降用于套索和弹性网,还用于岭回归。
为什么它使用这种算法,有时会给出稍微不准确的结果,而实际上有一个简单的封闭形式解决方案可用?
非常感谢您!
如果我理解正确,glmnet 不仅将循环坐标下降用于套索和弹性网,还用于岭回归。
为什么它使用这种算法,有时会给出稍微不准确的结果,而实际上有一个简单的封闭形式解决方案可用?
非常感谢您!
我认为这是由于速度。循环坐标下降不会在有限时间内找到精确解,但它更快,不仅对于的网格而且对于单个也是如此。
考虑求解单个的岭回归的任务,数据矩阵的大小为。我相信精确岭回归的最佳运行时间是如果和如果。请参阅 Murphy,机器学习,第 7.5.2 节以获取参考。
使用循环坐标下降算法,“通过所有个变量的完整循环需要操作”(第 6 页,Friedman 等人,2010 年,https://www.jstatsoft.org/article/view/v033i01)。然后可以用指定循环数来为单个获得更快的 big-Oh 运行时间。为了解决许多,该方法应该使用热启动产生进一步的改进。glmnet
存在其他用于 ridge 的求解器,glmnet 求解器的要点正是出于易处理性和速度的原因使用 CCD。他们对所有elasticnet 解决方案使用相同的代码。Elasticnet 通过将或设置为来包含 ridge 和 LASSO 。