Объект 'numpy.ndarray' не имеет атрибута 'предвидеть' - PullRequest
0 голосов
/ 25 октября 2019

Я закончил моделировать прогнозирование на моих тренировочных данных. Теперь я хочу построить прогноз с помощью функции «прогноз», чтобы оценить его по моим тестовым данным. Но мой код не работает. Я получил ошибку следующим образом:

Файл "", строка 1, в Fcast = Foretions_ARIMA.values.predict (start = '11 / 08/2019 ', end = '22 / 09/ 2019 ')

AttributeError: у объекта' numpy.ndarray 'нет атрибута' предикат '

Не могли бы вы мне помочь? Спасибо !!!

#modelling
    model = ARIMA(ts_log, order=(1, 1, 1))  
    results_ARIMA= model.fit(disp=-1)  
    plt.plot(ts_log_diff)
    plt.plot(results_ARIMA.fittedvalues, color='red')
    plt.title('RSS: %.4f'% sum((results_MA.fittedvalues-ts_log_diff)**2))
    plt.title('Fitting data _ MSE: %.2f'% ((
            (results_MA.fittedvalues-ts_log_diff)**2).mean()))
    plt.xlabel('Date')
    plt.legend(('Real Log Values', 'Predicted Log Values'), loc='lower right')


    predictions_ARIMA_diff = pd.Series(results_ARIMA.fittedvalues, copy=True)
    print (predictions_ARIMA_diff.head())

    predictions_ARIMA_diff_cumsum = predictions_ARIMA_diff.cumsum()
    print (predictions_ARIMA_diff_cumsum.head())


    predictions_ARIMA_log = pd.Series(ts_log.ix[0], index=ts_log.index)
    predictions_ARIMA_log = predictions_ARIMA_log.add(predictions_ARIMA_diff_cumsum,
                                                      fill_value=0)
    predictions_ARIMA_log.head(20)

    def mean_sqared_err(y,yhat):
        return (sum((yhat-y)**2)/len(y))
    def mean_absolute_err(y,yhat): 
        return np.mean((np.abs(y.sub(yhat).mean())/yhat)) 
    def rmse(y,yhat):
        return np.sqrt(sum((yhat-y)**2)/len(y))

    predictions_ARIMA = np.exp(predictions_ARIMA_log)
    plt.plot(train_weekly_resampled_data)
    plt.plot(predictions_ARIMA)

    plt.title('RMSE: %.4f |MSE: %.4f| MAE: %.4f'% (
            rmse(train_weekly_resampled_data, predictions_ARIMA), 
            mean_sqared_err(train_weekly_resampled_data, predictions_ARIMA),
            mean_absolute_err(train_weekly_resampled_data,predictions_ARIMA)))    

    plt.xlabel('Date')
    plt.legend(('Real Values', 'Predicted Values'), loc='lower right')

# forecast     
    Fcast = predictions_ARIMA.values.predict(start = '11/08/2019', end = '22/09/2019')

1 Ответ

0 голосов
/ 25 октября 2019

Ваша модель сохранена в переменной model. Вы должны изменить свою последнюю строку на

Fcast = model.predict(start = '11/08/2019', end = '22/09/2019')
...