Я делал тест с 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.Правильна ли моя мысль?