python - Python 中的趋势 "Predictor"?

标签 python pandas statistics time-series prediction

我目前正在处理具有 2 列的数据框(在 pandas 中):第一列是一些数字量化数据,例如体重、某天花费的金额、GPA 等., 第二列是日期值,即添加相应列 1 条目的日期。

我想知道,在 Python 中是否有一种方法可以“预测”时间 X 之后的下一个值?例如。如果我有 100 个体重条目跨越 2-3 个月(并非所有条目都有相同的时间差,所以 1 个条目可能在第 3 天、接下来的第 5 天和接下来的第 10 天),并且想“预测”什么我在 1 个月后的下一个条目,有没有办法做到这一点?

我认为这与时间序列分析有关,但我的统计背景不是很强,所以我不知道这是否是正确的方法。如果是,我如何将它应用于我的数据框(即哪些包)?它可能返回的值(value)是否有意义,或者在我正在处理的内容中是否毫无意义?谢谢。

最佳答案

对于预测时间序列数据,我觉得最好的选择是 LSTM,它是一种递归神经网络,非常适合时间序列回归。

如果您不想深入研究神经网络的后端,我建议使用 Keras 库,它是 Tensorflow 框架的包装器。

假设您有一个一维值数组,并且您想要预测下一个值。 Keras 中的代码可能如下所示:

#start off by building the training data, let arr = the list of values
X = []
y = []
for i in range(len(arr)-100-1):
    X.append(arr[i:i+100]) #get prev 100 values for the X
    y.append(arr[i+100])   # predict next value for Y

由于 LSTM 采用 3 维输入,我们希望将 X 数据 reshape 为具有 3 个维度:

import numpy as np
X = np.array(X)
X = X.reshape(len(X), len(X[0]), 1)

现在 X 的形式是(样本、时间步长、特征)

这里我们可以使用keras搭建一个神经网络:

from keras.models import Sequential
from keras.layers import Dense, LSTM

model = Sequential()
model.add(LSTM(input_shape = (len(X[0], 1)) #input 3-D timeseries data
model.add(Dense(1)) #output 1-D vector of predicted values
model.compile(loss='mean_squared_error', optimizer='adam')
model.fit(X, y)

中提琴,您可以使用您的模型来预测数据中的下一个值

关于python - Python 中的趋势 "Predictor"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49712037/

相关文章:

python - Django 设置

python - 如何找到给定 Pandas 数据帧索引的位置索引?

python - 在 Pandas 中重新采样

excel - 使用 Excel 计算统计显着性

matlab - 两个向量之间的马氏距离

r - 向 qqnorm 图添加一条直线

python - 将 webdriver-manager 与 pyinstaller 一起使用时出错

python - django crontab 作业不工作

python - Pinguin rcorr 热图

python - 将带有异常分隔符的文本文件读取到 panda 数据框