gpt4 book ai didi

python - sklearn.linear_model LinearRegression 模块的系数是如何返回的

转载 作者:行者123 更新时间:2023-12-01 08:57:07 25 4
gpt4 key购买 nike

我正在使用 sklearn.linear_model 和模块 LinearRegression 执行一个简单的自回归模型。你可以在下面看到我的代码。训练数据集位于 train 中,X 包含目标的滞后版本。滞后最小的数据,即滞后为 1 的数据,位于 X 的第一列,最后一列包含最滞后的数据。

import numpy as np
import sklearn.linear_model as skml
tot_param = 10
X = np.zeros((len(train),tot_param))
for i in range(1,tot_param):
aux = np.roll(train,-i)
aux[-i:] = 0
X[:,-i] = aux

lregr = skml.LinearRegression()
model = lregr.fit(X,train)

因此,我希望 model.coef_ 中的系数将根据 X 的列进行排序,即第一个元素将包含与最小相关的系数滞后数据。如果我使用 tot_params=1 执行代码,我只会得到一个值为 0.97190325 的系数。但是,如果我选择 tot_params=2,我会得到 model.coef_=[-0.00433893, 0.97612027];显然,第二个值 (0.97612027) 指的是滞后最少的数据。但这是为什么呢?我期望像 model.coef_=[0.97612027, -0.00433893] 这样的输出,其中最不滞后数据的系数在前面。

对于 tot_params 的其他值也会发生同样的情况。例如,对于 tot_params=6,我得到 [ 3.71898345e-02, 5.46416689e-02, -8.65343583e-02, -1.88565771e-03, -6.13451823e-04, 9.72547863 e-01],这再次清楚地表明滞后最少的数据被放置在返回列表的末尾而不是开头。

最佳答案

就在那里:X[:,-i] = aux

i 越大 -> 滞后越大 -> 与最后一列的距离越大:
i=1 是第-1 列
i=6 是第 -6 列,因此这将是第一列。

如果您喜欢相反的方式,请将其更改为 X[:, i-1] = aux

关于python - sklearn.linear_model LinearRegression 模块的系数是如何返回的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52722912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com