【问题标题】:efficient regression of multiple outputs in pythonpython中多个输出的有效回归
【发布时间】:2013-08-30 14:59:45
【问题描述】:

假设我有预测数组 x=numpy.array(n,px) 和预测数组 y=numpy.array(n, py) 在 python 中计算从 x 到 y 的每个维度(1...py)的所有回归(线性)的最佳方法是什么? 整个事情的输出将是一个矩阵(py,px)(对于每个输出,px 参数)。

我当然可以轻松地迭代输出维度(对于每个计算正常的单输出多元输入 OLS),但是这将是低效的,因为我将重新计算 x 的伪逆矩阵。

那里有任何有效的实施吗? 找不到任何(http://wiki.scipy.org/Cookbook/OLS

【问题讨论】:

  • yx 的关系如何,一般等式如下:y = ax + b?

标签: python numpy scipy regression


【解决方案1】:

我认为scikit-learn 已经这样做了,所以我查看了source code 并发现他们使用scipy.linalg.lstsq(参见第379 行)。

根据the docslstsqscipy 版本确实接受矩阵作为b 参数。 (实际上numpy version 也接受矩阵值。)

也许这些就是你要找的?

【讨论】:

  • 是的,我做了类似的事情:使用numpy.linalg.lstsq ...问题是这缺乏p值和可能性的计算。我想 scikit-learn 中线性回归的包装器应该更新以支持将来的多个输出
【解决方案2】:

sklearn.linear_model.LinearRegression 的 fit() 方法接受多目标输出,因此现在在 sklearn 中本地处理。只需对形状 (n_samples, n_targets) 的 fit(X,y) 的 y 值使用二维数组。

【讨论】:

    猜你喜欢
    • 2018-01-16
    • 2018-08-29
    • 2017-01-25
    • 2019-05-26
    • 2013-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多