标题: scikit-learn是否执行“真正的”多元回归(多个因变量)?

我想使用多个预测变量来预测多个因变量。如果我理解正确的话,原则上可以制作一系列线性回归模型,每个模型预测一个因变量,但如果因变量之间存在相关性,使用多元回归会更合理。我想做后者,但我不确定如何操作。

到目前为止,我还没有找到一个专门支持这种操作的Python包。我尝试过scikit-learn,尽管他们的线性回归模型示例只展示了y为数组的情况(每个观测值有一个因变量),但它似乎能够处理多个y。然而,当我将这种“多元”方法的输出与我通过手动循环每个因变量并独立预测它们的结果进行比较时,结果完全相同。我认为不应该这样,因为一些因变量之间存在强烈的相关性(>0.5)。

代码看起来像这样,其中y可以是n x 1矩阵或n x m矩阵,xnewx是各种大小的矩阵(x的行数等于n)。

ols = linear_model.LinearRegression()ols.fit(x,y)ols.predict(newx)

这个函数实际上执行多元回归吗?


回答:

这是一个数学/统计学问题,但我还是会在这里尝试回答。

你看到的结果完全是预期之内的。像这样的线性模型不会考虑因变量之间的相关性。

如果你只有一个因变量,你的模型基本上由一个权重向量组成

w_0  w_1  ...  w_n,

其中n是特征的数量。对于m个因变量,你反而有一个权重矩阵

w_10  w_11  ...  w_1nw_20  w_21  ...  w_2n....             ....w_m0  w_m1  ...  w_mn

但是不同输出变量(1, …, m)的权重是完全独立的,由于总平方误差的总和分解为每个输出变量的平方误差之和,因此最小化总损失的平方与为每个输出变量设置一个单变量线性模型并独立最小化它们的平方损失是完全相同的。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注