Lasso 回归的时间复杂度是多少?

机器算法验证 套索 时间复杂度
2022-02-17 03:12:47

随着行数或列数的增加,Lasso 回归的渐近时间复杂度是多少?

2个回答

虽然@JacobMick 提供了更广泛的概述和评论论文的链接,但让我给出一个“快捷答案”(这可能被认为是他答案的一个特例)。

设候选变量(特征、列)的数量为,样本大小(观察数、行数)为考虑使用 LARS 算法(Efron 等人,2004 年)实现的 LASSO。LASSO 的计算复杂度为 (同上)KnO(K3+K2n)

  • 对于 ,,LASSO 的计算复杂度为个变量的回归相同( Efron et al., 2004 年,第 443-444 页;也在Schmidt,2005 年,第 2.4 节中引用;有关回归的计算复杂性,请参阅这篇文章)。K<nK3<K2nO(K2n)K
  • 对于 ,和 LASSO 的计算复杂度是 ( Efron et al., 2004 )。KnK3K2nO(K3)

参考:

回想一下,lasso 是一个线性模型,具有l1正则化。

寻找参数可以表述为一个无约束的优化问题,其中参数由下式给出

argminβ||yXβ||2+α||β||1.

在受约束的公式中,参数由下式给出

argminβ||yXβ||2s.t.||β||1<α

这是一个二次规划问题,因此是多项式的。

几乎所有的凸优化例程,甚至对于像神经网络这样灵活的非线性事物,都依赖于计算目标 wrt 参数的导数。但是,您不能取α||w||1的导数。因此,您依赖于不同的技术。有很多方法可以找到参数。这是一篇关于该主题的评论论文,Least Squares Optimization with L1-Norm Regularization迭代凸优化的时间复杂度很难分析,因为它取决于收敛标准。通常,随着观测值的增加,迭代问题会在更少的时期内收敛。