代码:

# 
with open ("6NW12B(e817n833,e818n833)_pred.txt","r") as f:
    data_pred=[]
    f=f.readlines()
    for i in f:
        i=i.split("\n")[0]
        data_pred.append(int(i))
    print(len(data_pred))
    print(data_pred[:10])
with open ("6NW12B(e817n833,e818n833)_truth.txt","r") as f:
    data_truth=[]
    f=f.readlines()
    for i in f:
        i=i.split(" ")[-1].split("\n")[0]
        data_truth.append(int(i))
    print(len(data_truth))
    print(data_truth[:10])
tp=0 # TP(True Positive):真正例,真值和预测值都是正例
fp=0 # FP(False Positive):假正例,真值是负例,预测值是正例
tn=0 # TN(True Negative):真负例,真值和预测值都是负例
fn=0 # FN(False Negative):假负例,真值是正例,预测值是负例
# 设 1是正例 2 是负例
for i in range(len(data_truth)):
    if data_truth[i]==1 and data_pred[i]==1 :tp+=1
    if data_truth[i]==2 and data_pred[i]==1 :fp+=1
    if data_truth[i]==2 and data_pred[i]==2 :tn+=1
    if data_truth[i] == 1 and data_pred[i] == 2:fn += 1

print("tp--fp--tn--fn")
print(tp,fp,tn,fn)
# import numpy as np
#
# # 计算混淆矩阵
# def compute_confusion_matrix(precited,expected):
#         part = precited ^ expected  # 对结果进行分类,亦或使得判断正确的为0,判断错误的为1
#         pcount = np.bincount(part)  # 分类结果统计,pcount[0]为0的个数,pcount[1]为1的个数
#         tp_list = list(precited & expected)  # 将TP的计算结果转换为list
#         fp_list = list(precited & ~expected)  # 将FP的计算结果转换为list
#         tp = tp_list.count(1)  # 统计TP的个数
#         fp = fp_list.count(1)  # 统计FP的个数
#         tn = pcount[0] - tp  # 统计TN的个数
#         fn = pcount[1] - fp  # 统计FN的个数
#         return tp, fp, tn, fn
#
# # 计算常用指标
# def compute_indexes(tp, fp, tn, fn):
#     print(tp+tn,tp+tn+fp+fn)
#     accuracy = float((tp+tn) / (tp+tn+fp+fn))    # 准确率
#     precision = tp / (tp+fp)               # 精确率
#     recall = tp / (tp+fn)
#     print(2*precision*recall,precision+recall)# 召回率
#     F1 = float((2*precision*recall) / (precision+recall))    # F1
#     return accuracy, precision, recall, F1
#
# # 测试代码
# precited = np.array(data_pred)
# expected = np.array(data_truth)
# tp, fp, tn, fn = compute_confusion_matrix(precited, expected)
# print(f"TP: {tp}")
# print(f"FP: {fp}")
# print(f"TN: {tn}")
# print(f"FN: {fn}")
# accuracy, precision, recall, F1 = compute_indexes(tp, fp, tn, fn)
# print(f"Accuracy:  {accuracy}")
# print(f"Precision: {precision}")
# print(f"Recall:    {recall}")
# print(f"F1:        {F1}")