我需要计算表示为多热向量的标签和预测的混淆矩阵。似乎sklearn不支持这种情况。
这是我所拥有的一个例子。假设存在三个类'a', 'b',
和'c'
;目标/标签是:
l1 = [1, 0 ,1, 0, 0]; of class a
l2 = [1, 0 ,1, 0, 1]; of class b
l3 = [1, 0 ,0, 0, 0]; of class a
l4 = [0, 0 ,0, 0, 0]; of class c
所以,我们有标签矩阵:
L = np.array([ [1, 0 ,1, 0, 0],
[1, 0 ,1, 0, 1],
[1, 0 ,0, 0, 0],
[0, 0 ,0, 0, 0]] )
预测是:
p1 = [1, 0 ,1, 0, 0]; of class a
p2 = [1, 0 ,1, 0, 0]; of class b
p3 = [1, 1 ,0, 0, 0]; of class a
p4 = [0, 1 ,0, 0, 0]; of class c
和预测矩阵为:
P = np.array([ [1, 0 ,1, 0, 0],
[1, 0 ,1, 0, 0],
[1, 1 ,0, 0, 0],
[0, 1 ,0, 0, 0]] )
我希望输出结果是一个3x3
混淆矩阵,大致类似于以下内容:
A B C
A 2 0 0
B 0 0 1
C 0 1 0
我正在使用sklearn
accuracy_score
来估计分类准确性。但是,尽管accuracy_score
正在努力确保此类标签的准确性,但是sklearn
混淆矩阵不支持上述情况。 sklearn
可以替代吗?
Another question似乎给出了三个混淆矩阵,我不是这种情况。
答案 0 :(得分:0)
我认为准确性不是在这种情况下使用的正确指标。您宁愿使用roc_auc_score
中的sklearn.metrics.ranking
。