python - 用 scikit-learn 拟合向量自回归模型

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

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

最佳答案

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

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

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

关于python - 用 scikit-learn 拟合向量自回归模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20681297/

相关文章:

python - 将字符列编码为序数,但保持数字列相同

python - 如何在Windows中使用Python播放Mp3文件?

python - KafkaError Unsupported compression codec 0x3 with Confluent Python Kafka consumer

python - 使用 IMAP 和 Python 获取最近的 n 封电子邮件

python - 使用 subprocess.Popen 时 Scrapy ImportError : No module named project. 设置

machine-learning - 如何将 LMDB 文件加载到 TensorFlow 中?

php - 如何将 sklearn 代码嵌入到我的 PHP 后端代码中?

python - 使用 Python/Matlab 在图像中人为地合并非刚性运动以生成数据

python - 如何在 scikit learn 中保存 TFIDF 矢量器?

machine-learning - 逻辑回归模型 LogisticRegression 中的内核 scikit-learn sklearn