如何在LSTM模型中获得预测值?

时间:2020-06-09 14:19:28

标签: deep-learning lstm

此模型正在尝试对电子邮件是垃圾邮件还是火腿邮件进行分类。

培训结束了,但是我应该如何输入新的电子邮件文本并获取可以告诉我该电子邮件是垃圾邮件还是垃圾邮件的值?

这是教科书中的示例代码:

import sklearn
from sklearn.metrics import precision_recall_fscore_support as score
# prediction on test data

predicted_blstm=model.predict(test_data)
predicted_blstm

# model evaluation

from sklearn.metrics import precision_recall_fscore_support as score

precision, recall, fscore, support = score(labels_test, predicted_blstm.round())

print('precision: {}'.format(precision))
print('recall: {}'.format(recall))
print('fscore: {}'.format(fscore))
print('support: {}'.format(support))

print("############################")

print(sklearn.metrics.classification_report(labels_test, predicted_blstm.round()))

和结果:

precision: [0.98782961 0.95348837]
recall: [0.99387755 0.91111111]
fscore: [0.99084435 0.93181818]
support: [980 135]
############################
              precision    recall  f1-score   support

           0       0.99      0.99      0.99       980
           1       0.95      0.91      0.93       135

   micro avg       0.98      0.98      0.98      1115
   macro avg       0.97      0.95      0.96      1115
weighted avg       0.98      0.98      0.98      1115
 samples avg       0.98      0.98      0.98      1115

我已经测试过代码

mode.predict()

但结果是:

array([[9.9973804e-01, 2.6198191e-04],
       [9.9988401e-01, 1.1600493e-04],
       [9.9996233e-01, 3.7628190e-05],
       [9.9998081e-01, 1.9162568e-05],
       [9.9998498e-01, 1.5043216e-05],
       [9.9907982e-01, 9.2014833e-04],
       ...
       [9.9996233e-01, 3.7628190e-05],
       [9.9996233e-01, 3.7628190e-05]], dtype=float32)

这个数字是什么意思? 我可以通过显示消息“垃圾邮件”或“火腿”来从此数组中获得答案吗?

1 个答案:

答案 0 :(得分:1)

我不知道训练和测试数据中的功能,但是如果您的模型仅通过电子邮件文本功能进行训练,那么您可以执行以下操作:

1)使用训练数据上使用的矢量化器将电子邮件文本(例如“这是我要测试的电子邮件”)转换为矢量。

2)如果向量存储在变量“ vec”中。然后,您可以使用

来预测电子邮件是垃圾邮件还是垃圾邮件
prediction = model.predict(vec)

易变的“预测”将保留您的答案。