- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
定义我的神经网络并训练我的模型后:
net = tflearn.input_data(shape=[None, 1, 1])
tnorm = tflearn.initializations.uniform(minval=-1.0, maxval=1.0)
net = tflearn.lstm(net, timesteps, dropout=0.8)
net = tflearn.fully_connected(net, 1, activation='linear', weights_init=tnorm)
net = tflearn.regression(net, optimizer='adam', learning_rate=0.001,
loss='mean_square', metric='R2')
# Define model
model = tflearn.DNN(net, clip_gradients=0.)
model.fit(X, y, n_epoch=nb_epoch, batch_size=batch_size, shuffle=False, show_metric=True)
score = model.evaluate(X, y, batch_size=128)
model.save('ModeSpot.tflearn')
我现在遇到了一个问题,我发现进行时间序列预测的大部分教程都使用测试集来预测(他们将测试集提供给 .predict())。问题是,实际上我们不知道这一点,因为这是我们想要预测的。
现在我正在使用它:
def forecast_lstm(model, X):
X = X.reshape(len(X), 1, 1)
yhat = model.predict(X)
return yhat[0, 0]
# split data into train and test-sets
train, test = supervised_values[0:-10000], supervised_values[-10000:]
# transform the scale of the data
scaler, train_scaled, test_scaled = scale(train, test)
# Build neural network
net = tflearn.input_data(shape=[None, 1, 1])
tnorm = tflearn.initializations.uniform(minval=-1.0, maxval=1.0)
net = tflearn.lstm(net, 1, dropout=0.3)
net = tflearn.fully_connected(net, 1, activation='linear', weights_init=tnorm)
net = tflearn.regression(net, optimizer='adam', learning_rate=0.001,
loss='mean_square', metric='R2')
lstm_model = tflearn.DNN(net, clip_gradients=0.)
lstm_model.load('ModeSpot.tflearn')
# forecast the entire training dataset to build up state for forecasting
train_reshaped = train_scaled[:, 0].reshape(len(train_scaled), 1, 1)
lstm_model.predict(train_reshaped)
# walk-forward validation on the test data
predictions = list()
error_scores = list()
for i in range(len(test_scaled)):
# make one-step forecast
X, y = test_scaled[i, 0:-1], test_scaled[i, -1]
yhat = forecast_lstm(lstm_model, X)
# invert scaling
yhat2 = invert_scale(scaler, X, yhat)
# # invert differencing
yhat3 = inverse_difference(raw_values, yhat2, len(test_scaled) + 1 - i)
# store forecast
predictions.append(yhat3)
但它只适用于我的测试集。我该如何预测下一个 x 值?我想我在某个地方看到过,要预测 T 处的值,我必须使用 T-1 处的值进行预测(然后使用 T 处的值进行 T+1 等,直到达到我想要的预测数量)。这是一个好方法吗?
我尝试过这样做:
def forecast_lstm2(model, X):
X = X.reshape(-1, 1, 1)
yhat = model.predict(X)
return yhat[0, 0]
test = list()
X, y = train_scaled[0, 0:-1], train_scaled[0, -1]
test.append(X)
for i in range(len(test_scaled)):
# make one-step forecast
yhat = forecast_lstm2(lstm_model, test[i])
test.append(yhat)
# invert scaling
yhat2 = invert_scale(scaler, test[i+1], yhat)
# # invert differencing
yhat3 = inverse_difference(raw_values, yhat2, len(test) + 1 - i)
# store forecast
predictions.append(yhat3)
但它没有达到预期的效果(经过一些预测,它总是给出相同的结果)。
感谢您的关注和时间。
最佳答案
最后这似乎有效: # 进行一步预测 def Forecast_lstm2(模型, X): X = X.reshape(-1, 1, 1) yhat = model.predict(X) 返回 yhat[0, 0]
def prediction(spotId):
epoch = [5, 15, 25, 35, 45, 50, 100]
for e in epoch:
tf.reset_default_graph()
# Load CSV file, indicate that the first column represents labels
data = read_csv('nowcastScaled'+str(spotId)+'.csv', header=0, parse_dates=[0], index_col=0, squeeze=True, date_parser=parser)
# transform data to be stationary
raw_values = data.values
diff_values = difference(raw_values, 1)
# transform data to be supervised learning
supervised = timeseries_to_supervised(diff_values, 1)
supervised_values = supervised.values
# split data into train and test-sets (I removed the testing data from the excel file)
train = supervised_values[x:]
# transform the scale of the data (and removed anything related to testing set)
scaler, train_scaled = scale(train)
# Build neural network
net = tflearn.input_data(shape=[None, 1, 1])
tnorm = tflearn.initializations.uniform(minval=-1.0, maxval=1.0)
net = tflearn.lstm(net, 1, dropout=0.8)
net = tflearn.fully_connected(net, 1, activation='linear', weights_init=tnorm)
net = tflearn.regression(net, optimizer='adam', learning_rate=0.0001,
loss='mean_square', metric='R2')
lstm_model = tflearn.DNN(net, clip_gradients=0.)
lstm_model.load('ModeSpot'+str(spotId)+'Epoch'+str(e)+'.tflearn')
# forecast the entire training dataset to build up state for forecasting
train_reshaped = train_scaled[:, 0].reshape(len(train_scaled), 1, 1)
lstm_model.predict(train_reshaped)
# walk-forward validation on the test data
predictions = list()
predictionFeeder = list()
X, y = train_scaled[0, 0:-1], train_scaled[0, -1]
predictionFeeder.append(X)
for i in range(0, 10000):
# make one-step forecast
yhat = forecast_lstm2(lstm_model, predictionFeeder[i])
predictionFeeder.append(yhat)
# invert scaling
yhat2 = invert_scale(scaler, predictionFeeder[i + 1], yhat)
yhat3 = inverse_difference(raw_values, yhat2, 10000 + 1 - i)
predictions.append(yhat3)
关于python - TFLearn 时间序列预测 预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45343742/
我正在使用自己的数据集,我想使用 tflearn 建立深度神经网络。 这是我的代码的一部分。 import tflearn from tflearn.data_utils import load_cs
有两个 TFLearn 项目 TF Learn (aka Scikit Flow) https://github.com/tensorflow/tensorflow/tree/master/tenso
我正在使用 TFLearn Alexnet使用我自己的数据集进行采样。 接下来我想对测试数据进行分类并确定模型的准确性。 TFLearn API 提供方法 model.predict()和 model
我正在尝试使用神经网络对 f(x) = x^2 图进行建模,我正在 tflearn 中进行制作。但即使使用多个图层,当我从模型中绘制一些点时,它总是会绘制一条直线。 import numpy as n
在获得了这么多事情的帮助后,我最后一次来这里解决我的最后一个问题,但我找不到解决方案。 继我之前的 question一位用户指出,我的时间序列预测结果不佳可能是因为我的架构不收敛。 查看它并尝试了我在
我正在使用 tflearn 和 gym 编写机器学习脚本。 我能够让一个网络在我的 python 脚本中工作,但每当我尝试调用我的函数来构建第二个或第三个网络并使用 model.fit,我得到一个 t
我正在尝试使用 TensorFlow 和 TFLearn 创建一个 AI 来预测 FRC 比赛的结果。 这是相关内容 x = np.load("FRCPrediction/matchData.npz"
我已经在我的Windows机器上安装了tensorflow和docker。我正在使用 powershell 打开 tensorflow docker run -it -p 8888:8888 tens
我正在玩带有 pokemon kaggle 数据集的 tflearn。我试图将宠物小 Sprite 的名称作为 word2vec,其余作为普通矩阵。我正在尝试预处理数据。 我所做的是使用 TF lea
我的网络为每个预测生成相同的输出。我在 pandas 数据框中有大约 49,000 个数据样本。 我怎样才能解决这个问题? # Input data X.as_matrix() => 8 dimens
我遇到了以下语句: convnet = input_data(shape=[None,img_size,img_size,1], name='input') 我试图寻找描述,但找不到明确的解释。 我的
我是 TFLearn 新手,我正在尝试一个简单的神经网络来预测给定输入数组时的输出数组值。 此代码的实际输入可以是灰度图像的像素值或从灰度图像中提取的特征。因此输入是二维数组格式。输出将是每个像素的预
使用 TFlearn 构建 DNN 后,我想计算网络的准确性。 这是代码: def create_model(self): x = tf.placeholder(dtype= tf.float
我是机器学习和 TensorFlow 的新手。我正在尝试训练一个简单的模型来识别性别。我使用高度、体重和鞋码的小数据集。然而,我在评估模型的准确性时遇到了问题。完整代码如下: import tflea
定义我的神经网络并训练我的模型后: net = tflearn.input_data(shape=[None, 1, 1]) tnorm = tflearn.initializations.unifo
我是机器学习新手,正在尝试TFlearn,因为它很简单。 我正在尝试制作一个我觉得有趣的基本分类器。我的目标是训练系统预测一个点所在的方向。 例如,如果我输入两个 2D 坐标 (50,50) 和 (5
我在 tflearn 中有一个 lstm 网络,它在给定前面单词的上下文的情况下预测序列中的下一个单词。单词作为一定大小的词汇表的索引被输入网络,并以二元类的形式输出,例如: 上下文:[45, 243
我正在尝试学习 tflearn。但我有一些疑问。 在下一行 net = tflearn.input_data(shape=[None, len(train_x[0])]) len(train_x[0]
我不知道你是否可以在这里帮助我,但我遇到了一个我无法解决的问题。我有大约 450,000 个条目的大型(对我而言)数据集。每个条目都是大约 700 个整数的列表,格式如下: [217088.0, 21
我正在尝试调整 Convolutional Neural Net example of tflearn使用约 12000 个不同的类标签和超过 100 万个训练示例进行分类。就单热编码时的内存消耗而言
我是一名优秀的程序员,十分优秀!