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

时间:2013-12-19 12:02:02

标签: python machine-learning scikit-learn linear-regression model-fitting

我正在尝试使用scikit-learn中包含的广义线性模型拟合方法拟合向量自回归(VAR)模型。线性模型的形式为 y = X w ,但系统矩阵 X 具有非常独特的结构:它是块对角线,所有块都是相同的。为了优化性能和内存消耗,模型可以表示为 Y = BW ,其中 B 是来自 X , Y W 现在是矩阵而不是矢量。 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(稳定)

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:2)