Я пытаюсь произвести регрессию с использованием пакета sklearn, а затем строить их в использовании matplotlib.
Мне удалось получить коэффициенты скользящей регрессии, но при добавлении вывода получается трехмерный список, который у меня затруднен.
Ниже приведен код ошибки:
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-список в 2 измерения или какой-либо другой метод, чтобы это можно было построить?
Оказывается, используя метод 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)
Вы можете изменить размер массива, выполнив следующие действия:
X_reshaped = X.reshape(130, 5)