我正在研究句子类别检测问题。其中每个句子可以属于多个类别,例如:
"It has great sushi and even better service."
True Label: [[ 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 1.]]
Pred Label: [[ 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 1.]]
Correct Prediction!
Output: ['FOOD#QUALITY' 'SERVICE#GENERAL']
我已经实现了一个可以预测多个类别的分类器。我总共有 587 个句子属于多个类别。我通过两种方式计算了准确度分数:
如果一个例子的所有标签都预测到了?
代码:
print "<------------ZERO one ERROR------------>"
print "Total Examples:",(truePred+falsePred) ,"True Pred:",truePred, "False Pred:", falsePred, "Accuracy:", truePred/(truePred+falsePred)
输出:
<------------ZERO one ERROR------------>
Total Examples: 587 True Pred: 353 False Pred: 234 Accuracy: 0.60136286201
为所有示例正确预测了多少标签?
代码:
print "\n<------------Correct and inccorrect predictions------------>"
print "Total Labels:",len(total[0]),"Predicted Labels:", corrPred, "Accuracy:", corrPred/len(total[0])
输出:
<------------Correct and inccorrect predictions------------>
Total Labels: 743 Predicted Labels: 522 Accuracy: 0.702557200538
问题: 这些都是通过将预测分数与地面实况标签进行比较来计算的准确度分数。但我也想计算 F1 分数(使用微平均)、精度和召回率。我有基本事实标签,我需要将我的预测与这些基本事实标签相匹配。但是,我不知道如何解决这种类型的多标签分类问题。我可以在 python 中使用 scikit-learn 或任何其他库吗?