Я относительно новичок в кодировании python, я пытаюсь сделать прогноз Holtswinter для нескольких столбцов с помощью итерации.
проблема: прогноз подходит для данных первого столбца, но от второго до последнего столбца прогноз отличается. Я могу понять после прогнозирования для первого столбца, я не сбрасываю модель, поэтому я думаю, что модель подходит для второго, а также данные первого столбца для второго столбца и т. д.
Я хочу знать, как сбросить Fit1 и y-hat_avg после предшествующего первого столбца
fit1 = ExponentialSmoothing(np.asarray(train_j['axis_Load']),seasonal_periods=168,trend='add',seasonal='add').fit()
y_hat_avg['Holt_Winter'] = fit1.forecast(len(test_j))
train=df['2019-07-02':'2019-9-11']
test=df['2019-09-12':'2019-10-12']
from statsmodels.tsa.api import ExponentialSmoothing, SimpleExpSmoothing, Holt
columns = list(train)
for i in columns:
train_i= train.loc[ : , i ]
test_i= test.loc[ : ,i ]
train_j=pd.DataFrame(train_i)
test_j=pd.DataFrame(test_i)
train_j= train_j.assign(axis_Load=train_j[i].interpolate(method='linear'))
test_j= test_j.assign(axis_Load=test_j[i].interpolate(method='linear'))
ref=[i]
train_j.drop(ref,axis=1,inplace=True)
test_j.drop(ref,axis=1,inplace=True)
y_hat_avg = test_j.copy()
fit1 = ExponentialSmoothing(np.asarray(train_j['axis_Load']),seasonal_periods=168,trend='add',seasonal='add').fit()
y_hat_avg['Holt_Winter'] = fit1.forecast(len(test_j))
plt.figure(figsize=(16,8))
plt.plot( train_j, label='Train')
plt.plot(test_j, label='Test')
plt.plot(y_hat_avg['Holt_Winter'], label='Holt_Winter')
plt.legend(loc='best')
plt.show()