矢量自回归模型拟合与scikit学习

kaz*_*ase 12 python machine-learning linear-regression model-fitting scikit-learn

我正在尝试使用scikit-learn中包含的广义线性模型拟合方法拟合向量自回归(VAR)模型.线性模型的形式为y = X w,但系统矩阵X具有非常独特的结构:它是块对角线,并且所有块都是相同的.为了优化性能和内存消耗,模型可以表示为Y = BW,其中B是来自X的块,YW现在是矩阵而不是向量.LinearRegression,Ridge,RidgeCV,Lasso和ElasticNet类很容易接受后一种模型结构.但是,由于Y是二维的,因此适合LassoCV或ElasticNetCV失败.

我发现https://github.com/scikit-learn/scikit-learn/issues/2402 从这个讨论中,我假定LassoCV/ElasticNetCV的行为意图.除了手动实现交叉验证之外,有没有办法优化alpha/rho参数?

此外,scikit-learn中的贝叶斯回归技术也期望y是一维的.有没有办法解决?

注意:我使用scikit-learn 0.14(稳定)

fre*_*aba 3

使用这种回归公式获得的性能和内存优化有多重要?鉴于您的重新制定破坏了 scikit-learn,我不会真正将其称为优化......我建议:

  1. 运行未优化的版本并等待(如果可能)。

  2. Git 拉取以下代码,据说可以解决您的问题。您在 scikit-learn github 项目中发布的对话中引用了它。有关从 git pull 构建 scikit-learn 的说明,请参阅此处。然后,您可以将分支 scikit-learn 位置添加到您的 python 路径,并使用修改后的库代码执行回归。请务必发布您的经历和遇到的任何问题;我确信 scikit 开发人员会很感激。