Расчет путаницы для двух текстовых файлов
Я хотел бы рассчитать матрицу путаницы для двух текстовых файлов. Кто-нибудь знает библиотеку или инструмент в Python или сценарий оболочки, который может сделать это?
например у меня есть два файла
ФАЙЛ А:
1
1
2
2
ФАЙЛ B:
2
2
2
2
Где я мог бы получить путаницу матрицы:
1 2
--------
1| 0 2
2| 0 2
Обновление: я хотел бы отметить, что оригинальный пост включает в себя заголовки строк и столбцов
1 ответ
Решение
Это, вероятно, излишне, но scikit-learn сделает это довольно легко:
from sklearn.metrics import confusion_matrix
# Read the data
with open('file1', 'r') as infile:
true_values = [int(i) for i in infile]
with open('file2', 'r') as infile:
predictions = [int(i) for i in infile]
# Make confusion matrix
confusion = confusion_matrix(true_values, predictions)
print(confusion)
С выходом
[[0 2]
[0 2]]
http://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html
Обновление: чтобы печатать с этикетками, вы можете либо преобразовать в фрейм данных с пандами, либо что-то вроде этого:
def print_confusion(confusion):
print(' ' + ' '.join([str(n) for n in range(confusion.shape[1])]))
for rownum in range(confusion.shape[0]):
print(str(rownum) + ' ' + ' '.join([str(n) for n in confusion[rownum]]))
который печатает
0 1
0 0 2
1 0 2