簡體   English   中英

混淆矩陣sklearn錯誤?

[英]Confusion matrix sklearn bug?

我正在使用sklearn.metrics.confusion_matrix進行測試,以查看在預測數組中是否存在一個不在標簽和映射數組中的類時發生的情況。 我的代碼是:

from sklearn.metrics import confusion_matrix as cm

a = ["positive\n", "positive\n", "negative\n", "positive\n", "negative\n"]
b = ["negative\n", "negative\n", "don't\n", "negative\n", "negative\n"]
m = ["positive\n", "negative\n"]
c = cm(a, b, m)
TN, FP, FN, TP = c.ravel()

print(c)
print("")
print("{} {} {} {}\n".format(TN, FP, FN, TP))

輸出是:

[[0 3]
 [0 1]]

0 3 0 1

因此, don't跳過該類。


但是,如果您查看版本v0.21.2文檔 ,那是我安裝的ravel()方法的文檔 ,“應該”輸出我所寫的混淆矩陣的值:TN,FP,FN,TP。 我的print輸出是不同的。 似乎ravel()的實際輸出被翻轉了:TP,FN,FP,TN。 我的想法對嗎?

沒有錯誤。 您已定義標簽:

m = ["positive\n", "negative\n"]

因此, "positive\\n"為負, "negative\\n"為正。 結果符合您的要求。

如果以這種方式修改m

m = ["negative\n", "positive\n"]

你會得到:

1 0 3 0

分別用於TN, FP, FN, TP

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM