我正在使用sklearn.metrics.confusion_matrix(y_actual, y_predict)
函数提取tn,fp,fn和tp,而且大部分时间它都能正常工作。
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输出?
谢谢
ravel
是函数。 - Kenry Sanchez