3
我正在使用sklearn.metrics.confusion_matrix(y_actual, y_predict)
來提取tn,fp,fn,tp和大部分時間它完美的工作。如何使sklearn.metrics.confusion_matrix()始終返回TP,TN,FP,FN?
from sklearn.metrics import confusion_matrix
y_actual, y_predict = [1,1,1,1], [0,0,0,0]
tn, fp, fn, tp = confusion_matrix(y_actual, y_predict).ravel()
>>> [0 0 4 0] # ok
y_actual, y_predict = [1,1,1,1],[0,1,0,1]
tn, fp, fn, tp = confusion_matrix(y_actual, y_predict).ravel()
>>> [0 0 2 2] # ok
然而,在某些情況下,confusion_matrix()並不總是返回的信息,按照下圖我會得到ValueError異常。
from sklearn.metrics import confusion_matrix
y_actual, y_predict = [0,0,0,0],[0,0,0,0]
tn, fp, fn, tp = confusion_matrix(y_actual, y_predict).ravel()
>>> [4] # ValueError: not enough values to unpack (expected 4, got 1)
y_actual, y_predict = [1,1,1,1],[1,1,1,1]
tn, fp, fn, tp = confusion_matrix(y_actual, y_predict).ravel()
>>> [4] # ValueError: not enough values to unpack (expected 4, got 1)
我的臨時解決方案是編寫我自己的函數來提取這些信息。有什麼辦法可以強制confusion_matrix()
始終返回tn,fp,fn,tp輸出嗎?
感謝
哇這完美!非常感謝你。 –
很高興幫助!請記住接受答案,如果它解決了你的問題! – kdd