我正在尝试使用sklearn软件包生成滚动回归,然后使用matplotlib将其绘制。
我已经能够产生滚动回归系数,但是附加输出会导致我很难绘制3D列表。
下面的代码给出以下错误:
ValueError:x和y不能大于2-D,但形状为(130,) 和(130,1,5)
rCoeff = []
lm = sk_l.LinearRegression()
for iS in range(1, len(y)-(rollingN-1)):
iE = iS+(rollingN-1)
subX = X[iS:iE]
suby = y[iS:iE]
lm.fit(subX,suby)
rCoeff.append(lm.coef_)
x = df_cpf.loc[36:166,'Date']
plt.plot_date(x,rCoeff)
是否有一种方法可以将3D列表“压缩”为二维,或者使用其他方法来进行绘制?
答案 0 :(得分:0)
您可以通过以下方式重塑阵列:
X_reshaped = X.reshape(130, 5)
答案 1 :(得分:0)
使用extend()
方法而不是append()
方法来解决问题。
rCoeff = []
lm = sk_l.LinearRegression()
for iS in range(1, len(y)-(rollingN-1)):
iE = iS+(rollingN-1)
subX = X[iS:iE]
suby = y[iS:iE]
lm.fit(subX,suby)
rCoeff.extend(lm.coef_)
x = df_cpf.loc[36:166,'Date']
plt.plot_date(x,rCoeff)