@邹博,关于ARIMA模型,预测结果与真实值求RMSE的问题

在下面这段代码中,x与y的长度是不一致的:
  1. x是真实值,且是从1949-01-01
  2. y是预测值,经过差分hua还原以后,数据是从1949-02-01
在计算RMSE时,为什么不是x[:-1]和y对应位置相减求和,而是直接x-y呢
 warnings.filterwarnings(action='http://wenda.chinahadoop.cn/ignore', category=HessianInversionWarning)
    pd.set_option('display.width', 100)
    np.set_printoptions(linewidth=100, suppress=True)
    data = pd.read_csv('AirPassengers.csv', header=0, parse_dates=['Month'], date_parser=date_parser,
                       index_col=['Month'])
    data.rename(columns={'#Passengers': 'Passengers'}, inplace=True)
    # print(data.dtypes)
    d = 1
    mpl.rcParams['font.sans-serif'] = [u'SimHei']
    mpl.rcParams['axes.unicode_minus'] = False
    x = data['Passengers'].astype(np.float)
    x = np.log(x)
    p = 2
    q = 2

    model = ARIMA(endog=x, order=(p, d, q))  # 自回归函数p,差分d,移动平均数q
    arima = model.fit(disp=-1)  
    prediction = arima.fittedvalues
    y = prediction.cumsum() + x[0]
    # print(x, y)
    mse = ((x - y) ** 2).mean()
    rmse = np.sqrt(mse)
    print(rmse)
    print(x.head())
    print(y.head())

邹博 - 计算机科学博士,深谙机器学习算法原理

赞同来自:

这是《机器学习·升级版V》中“回归实践”章节的问题。 问的非常好!不过这里有个小trick,因为我在代码中使用的是Pandas的DataFrame数据,它会使用相同索引的值相减。

alex121

赞同来自:

麻烦问一下这个代码是小象学院哪个课程里面讲的啊?

zhou2017

赞同来自:

我想问下大家,arima为什么不需要按时间分训练集和测试集来做呢?

要回复问题请先登录注册