【问题标题】:'numpy.ndarray' object has no attribute 'predict''numpy.ndarray' 对象没有属性 'predict'
【发布时间】:2020-02-21 22:29:47
【问题描述】:

我已经完成了对我的训练数据的预测建模。现在我想用函数'predict'绘制一个预测,用我的测试数据来评估它。但我的代码不起作用 我收到如下错误

文件“”,第 1 行,在 Fcast = predictions_ARIMA.values.predict(start = '11/08/2019', end = '22/09/2019')

AttributeError: 'numpy.ndarray' 对象没有属性 'predict'

你能帮帮我吗? 非常感谢 !!!

#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')

【问题讨论】:

    标签: python-3.x time-series forecasting arima


    【解决方案1】:

    您的模型保存在变量model 中。您应该将最后一行更改为

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

    【讨论】:

      猜你喜欢
      • 2022-01-26
      • 1970-01-01
      • 2020-09-22
      • 2020-12-08
      • 2019-12-10
      • 2017-07-10
      • 2020-05-10
      • 2019-11-04
      • 2017-05-24
      相关资源
      最近更新 更多