tensorflow - 如何从训练有素的 keras 模型中获得与实际值相比的预测值
问题描述
我已经根据加密货币价格使用 keras 训练了一个模型。它训练良好,准确率约为 60%。但是,我很难弄清楚如何使用 model.predict() 的结果将它们与实际值进行比较/绘制。
我的模型如下所示:
model = Sequential()
model.add(LSTM(128, input_shape=(train_x.shape[1:]), return_sequences=True))
model.add(Dropout(0.2))
model.add(BatchNormalization())
model.add(LSTM(128, input_shape=(train_x.shape[1:]), return_sequences=True))
model.add(Dropout(0.2))
model.add(BatchNormalization())
model.add(LSTM(128, input_shape=(train_x.shape[1:])))
model.add(Dropout(0.2))
model.add(BatchNormalization())
model.add(Dense(32, activation="tanh")) #could use relu
model.add(Dropout(0.2))
model.add(Dense(2, activation="softmax"))
opt = tf.keras.optimizers.Adam(lr=0.001, decay=1e-6)
model.compile(loss='sparse_categorical_crossentropy', optimizer=opt, metrics=['accuracy'])
history = model.fit(
train_x, train_y,
batch_size=BATCH_SIZE,
epochs=EPOCHS,
validation_data=(validation_x, validation_y))
# ## Plot predictions
targets = validation_data['close'] #get all the actual prices from the validation data
preds = model.predict(validation_x)
train_x 是前 90% 左右的数据,validation_x 是最后 10% 左右。
目标作为熊猫系列返回,如下所示:
time
1552021200 0.312
1552024800 0.312
1552028400 0.310
1552032000 0.311
1552035600 0.311
1552039200 0.311
1552042800 0.310
1552046400 0.309
1552050000 0.310
1552053600 0.312
但 preds 返回一个 ndarray,如下所示:
[[0.41261673 0.5873832 ]
[0.34726056 0.65273947]
[0.33154735 0.6684527 ]
...
[0.4990835 0.50091654]
[0.27250433 0.7274957 ]
[0.3717066 0.6282934 ]]
到目前为止,我发现这个 ndarray 只是每个类的概率,但是我确信有一些方法可以使用这些概率来预测与目标相同的索引点处的值。不知道如何做到这一点,并且很难找到如何做到这一点。
解决方案
推荐阅读
- python - 有没有办法在 Python 中使用用户名和密码访问我的 GUI 密码管理器?
- video - 使用 WebVTT 在 YouTube 上定位字幕
- javascript - 是否可以通过 firestore collectionGroup 查询访问父文档字段
- javascript - React-Native 博览会 POST Blob
- python - How to send data from a child in mutiprocessing in python?
- vb.net - 使用 VB.NET 获取 sessionID 终端服务器(使用 .NET 框架)
- asp.net-core-3.1 - 功能管理 - 两个应用程序之间的内部缓存
- excel - 使用具有相同数据的多个选项卡的 VBA 或数据透视表创建表(不能 PowerPivot)
- javascript - 如何为属于夏令时的未来日期更正时区偏移
- draw - libreoffice Basic:绘图和表格形状:如何格式化单元格?