基于模型预测概率结果,输出真实预测值

深度学习做分类任务时,通过softmax层后,输出各个类别的概率值。其中,最大概率值索引对应的类别,就是模型预测的最终结果。

本文讲述了使用Python将概率值转换最终预测结果。

先看一下10个类别,这10个类别,是fashion_mnist的类别。

class_name = ['T-shirt', 'Trouser', 'Pullover', 'Dress',
'Coat', 'Sandal', 'Shirt', 'Sneaker',
'Bag', 'Ankle boot']

假定我们的模型已经训练好,直接使用训练好的模型进行预测。

predictions = model.predict(x_test)

predictions的shape是(len(x_test), len(types)),我们看一下第一个预测结果predictions[0],输出的概率值吧

array([1.9580643e-03, 5.8311934e-04, 1.2522347e-03, 2.3092858e-03,
2.3697780e-03, 2.7583709e-02, 1.1669351e-03, 1.1092117e-01,
2.0149192e-02, 8.3170652e-01], dtype=float32)

总共有10个类别,分别对应10个概率值,其中,概率值最大的是最后一位:8.3170652e-0,对应class_name即是Ankle boot。

借助pandas快速完成这个目的。

import pandas as pd

# 将概率值与类别信息合并为series
result = pd.Series(predictions[0], index=class_name)
# 输出的类别字段
type = result.idxmax()
# 输出类别对应的概率值
max_score = result.max()

其中,合成的series是下面这样的形式,可以看出Ankle boot对应的值是最高的。如

T-shirt       0.001671
Trouser 0.000893
Pullover 0.001579
Dress 0.002067
Coat 0.000588
Sandal 0.006615
Shirt 0.002492
Sneaker 0.067276
Bag 0.006515
Ankle boot 0.910306

The End


已发布

分类

标签:

评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注