我正在尝试使用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(稳定)
答案 0 :(得分:3)
使用这种回归公式获得的性能和内存优化有多重要?鉴于你的重新制定打破了scikit-learn,我不会把它称为优化......我建议:
答案 1 :(得分:2)
要预测矩阵而不是向量,Lasso和ElasticNet就是他们的MultiTask *对应物:
http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.MultiTaskLasso.html http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.MultiTaskElasticNet.html