У меня проблема в зимнем прогнозе Хольца, когда я повторяю его по столбцам - PullRequest
0 голосов
/ 09 января 2020

Я относительно новичок в кодировании 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()
...