此模型正在尝试对电子邮件是垃圾邮件还是火腿邮件进行分类。
培训结束了,但是我应该如何输入新的电子邮件文本并获取可以告诉我该电子邮件是垃圾邮件还是垃圾邮件的值?
这是教科书中的示例代码:
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)
这个数字是什么意思? 我可以通过显示消息“垃圾邮件”或“火腿”来从此数组中获得答案吗?
答案 0 :(得分:1)
我不知道训练和测试数据中的功能,但是如果您的模型仅通过电子邮件文本功能进行训练,那么您可以执行以下操作:
1)使用训练数据上使用的矢量化器将电子邮件文本(例如“这是我要测试的电子邮件”)转换为矢量。
2)如果向量存储在变量“ vec”中。然后,您可以使用
来预测电子邮件是垃圾邮件还是垃圾邮件prediction = model.predict(vec)
易变的“预测”将保留您的答案。