マルチラベル分類器によって生成された結果があり、Python を使用してミクロ精度とマクロ精度、リコール、および F1 スコアを計算したいのですがsklearn.metrics、その方法がわかりません。
2 つのバイナリ スパース行列がdataOUTありdataGT、それぞれが同じデータセットの分類結果とグラウンド トゥルースを表しています。両方の行列のサイズはnLabels X nSamplesです。各サンプルは、1 つ以上のラベルでラベル付けできます。分類器が th 番目のサンプルをth ラベルでラベル付けした場合もそうですdataOUT[i,j]。1ji0
特定の class について、から th 行を抽出することで、通常の精度、再現率、およびiF スコアを簡単に計算でき、それらを にフィードできます。たとえば、次のようになります。idataOUTdataGTsklearn.metrics.precision_recall_fscore_support
import numpy as np
from sklearn.metrics import precision_recall_fscore_support
iLabel = 5 # some specific label
yOUT = np.asarray(dataOUT[iLabel,:].todense()).reshape(-1)
yGT = np.asarray(dataGT[iLabel,:].todense()).reshape(-1)
ps,rs,fs,ss = precision_recall_fscore_support(yGT,yOUT)
p = ps[1] # Precision for iLabel
r = rs[1] # Recall for iLabel
f1 = fs[1] # F1 for iLabel
しかし、データセット全体のミクロおよびマクロ測定値を計算するにはどうすればよいですか(dataOUT,dataGT)。ラベルごとに個別に?
どうも!