计算两个文本文件的混淆矩阵
Calculating Confusion Matrix for Two Text Files
我想计算两个文本文件的混淆矩阵。有谁知道 python 或 shell 脚本中可以执行此操作的库或工具?
例如我有两个文件
文件 A:
1
1
2
2
文件 B:
2
2
2
2
在哪里我会得到一个混淆矩阵:
1 2
--------
1| 0 2
2| 0 2
更新:我想指出原来的post包括行和列标签
这可能有点矫枉过正,但 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
更新:
要使用标签打印,您可以使用 pandas 或类似的方式转换为数据框:
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
我想计算两个文本文件的混淆矩阵。有谁知道 python 或 shell 脚本中可以执行此操作的库或工具?
例如我有两个文件
文件 A:
1
1
2
2
文件 B:
2
2
2
2
在哪里我会得到一个混淆矩阵:
1 2
--------
1| 0 2
2| 0 2
更新:我想指出原来的post包括行和列标签
这可能有点矫枉过正,但 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
更新: 要使用标签打印,您可以使用 pandas 或类似的方式转换为数据框:
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