python实现图像二分类特异度(numpy)
背景:二分类问题
一 了解TP、TN、FP、FN(表示样本的性质和数量)
TP:真的正例
真实值是positive,模型认为是positive的数量(True Positive=TP)
TN:真的负例
真实值是negative,模型认为是negative的数量(True Negative=TN)
FP:假的正例
真实值是negative,模型认为是positive的数量(False Positive=FP)
FN:假的负例
真实值是positive,模型认为是negative的数量(False Negative=FN)
二 确定输出和标签
y_true =[0,0,0,0,0,1,1,1,1,1]
y_pred =[1,0,0,0,1,0,1,1,0,0]
三 对应组合
for i in range(len(y_pred)):
list_pred_label.append([y_pred[i],y_true[i]])
四 初始化混淆矩阵
classes_num = 2
confusion_matrix = np.zeros((classes_num,classes_num))
confusion_matrix
五 赋值混淆矩阵
for i in list_pred_label:
confusion_matrix[i[0],i[1]] += 1
confusion_matrix
import pandas as pd
data = pd.DataFrame(confusion_matrix, columns=["0_label", "1_label"], index=["0_pred", "1_pred"])
data
六 得到TP、TN、FP、FN
根据公式到的准确率:模型预测对的假例,占,模型预测对的假例+模型预测为正的假例,的比重
在真实值是Negative的所有结果中,模型预测对的比重
spec= 3/6 = 0.5 # 即50%