如何获取每个 class 的概率和标签?
How to get the probability and label for each class?
我有一个模型,它 class 根据某些条件对场地进行分类,它有 10 个 class,我想要多少模型预测每个 class 的置信度得分?
我的代码:
结果是一个数组,模型在其中进行预测
predictions=model.predict(result)
confidence_score= model.predict_proba(list(result))
model.predict returns 只有一个值和置信度分数具有每个 class 的分数列表,如下所示:
[[0. 0.14 0. 0. 0. 0.56 0. 0.17
0.1 0.01 0. 0.20 0. 0. 0.002 0.01]]
它应该 return 每个 class 的 class 标签,例如:Class A 出现的概率为 0.2 % 等
labelencoder.inverse_transform(predictions)
输出应如下所示:
{Class Label A : Probability score , Class Label B: Probability score ....}
输出使用以下代码:
dictionary=[dict(zip(labelencoder.classes_, cs)) for cs in confidence_score]
Output
{Covent Garden': 0.0, 'London Cocktail Club - Liverpool Street': 0.0,
'Lost Society Battersea': 0.0, 'Lost Society Putney': 0.94.....}
在这种情况下,您可以看到 Lost Society 具有更高的置信度分数,但是当我这样做时 model.predict 它 return 我有一些其他标签而不是这个标签,我在代码中写了预测class 得分最高。
My code :
predictions=model.predict(result) //returns the single number
confidence_score= model.predict_proba(list(result))
dictionary=[dict(zip(labelencoder.classes_, cs)) for cs in confidence_score]
print(dictionary)
print("Recommended Venue for this type of category is",labelencoder.inverse_transform(predictions))
print("Confidence Score : ", np.max(confidence_score))
return labelencoder.inverse_transform(predictions),np.max(confidence_score)
我们可以 zip
labelencoder.classes_
和 confidence_score
并将 zip
对象传递给 dict
以创建字典
dict(zip(labelencoder.classes_, confidence_score.squeeze()))
如果您想一次预测多个样本
[dict(zip(labelencoder.classes_, cs)) for cs in confidence_score]
我有一个模型,它 class 根据某些条件对场地进行分类,它有 10 个 class,我想要多少模型预测每个 class 的置信度得分?
我的代码: 结果是一个数组,模型在其中进行预测
predictions=model.predict(result)
confidence_score= model.predict_proba(list(result))
model.predict returns 只有一个值和置信度分数具有每个 class 的分数列表,如下所示:
[[0. 0.14 0. 0. 0. 0.56 0. 0.17
0.1 0.01 0. 0.20 0. 0. 0.002 0.01]]
它应该 return 每个 class 的 class 标签,例如:Class A 出现的概率为 0.2 % 等
labelencoder.inverse_transform(predictions)
输出应如下所示:
{Class Label A : Probability score , Class Label B: Probability score ....}
输出使用以下代码:
dictionary=[dict(zip(labelencoder.classes_, cs)) for cs in confidence_score]
Output
{Covent Garden': 0.0, 'London Cocktail Club - Liverpool Street': 0.0,
'Lost Society Battersea': 0.0, 'Lost Society Putney': 0.94.....}
在这种情况下,您可以看到 Lost Society 具有更高的置信度分数,但是当我这样做时 model.predict 它 return 我有一些其他标签而不是这个标签,我在代码中写了预测class 得分最高。
My code :
predictions=model.predict(result) //returns the single number
confidence_score= model.predict_proba(list(result))
dictionary=[dict(zip(labelencoder.classes_, cs)) for cs in confidence_score]
print(dictionary)
print("Recommended Venue for this type of category is",labelencoder.inverse_transform(predictions))
print("Confidence Score : ", np.max(confidence_score))
return labelencoder.inverse_transform(predictions),np.max(confidence_score)
我们可以 zip
labelencoder.classes_
和 confidence_score
并将 zip
对象传递给 dict
以创建字典
dict(zip(labelencoder.classes_, confidence_score.squeeze()))
如果您想一次预测多个样本
[dict(zip(labelencoder.classes_, cs)) for cs in confidence_score]