私は文カテゴリ検出の問題に取り組んでいます。各文章が複数のカテゴリに属することができる例:マルチラベル分類でF1測定値を計算するにはどうすればよいですか?
"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の文章を持っています。私は2つの方法で精度スコアを計算しました。
例のすべてのラベルが予測されるかどうかを確認しますか?
コード:
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のスコア(マイクロ平均化を使用して)、精度とリコールも計算したい。私は真実のラベルを粉砕しているので、私はそれらの粉砕真理のラベルと私の予測を一致させる必要があります。しかし、私はどのように私はこの種のマルチラベル分類問題に取り組んでいるのか分かりません。 scikit-learnやその他のライブラリをPythonで使用できますか?
本当のラベル[0,1,0,1]と予測ラベル[0,1,1,0]があれば教えてください。次に、この単一の例の精度とリコールは何ですか?または、TN、TP、FN、FPとは何でしょうか。 –
私が前に示唆したようにすれば、あなたの真のラベルは0になり、あなたの予測は1になります。正確さとリコールは0になります。それらを平均化する。 – dooms
したがって、例x x trueラベル[0,1,0,1]と予測ラベル[0,1,1,0]は、1と0の位置だけを見てFP、TP、TNとTPを計算することはできませんか? –