def compute_pos_neg(y_actual, y_hat): TP = 0; FP = 0;TN = 0; FN = 0 for i in range(len(y_hat)): if y_actual[i]==y_hat[i]==1: TP += 1 if y_hat[i]==1 and y_actual[i]!=y_hat[i]: FP += 1 if y_actual[i]==y_hat[i]==0: TN += 1 if y_hat[i]==0 and y_actual[i]!=y_hat[i]: FN += 1 return TP,FP,TN,FN def metrics(TP,FP,TN,FN): a=TP+FP b=TP+FN c=TN+FP d=TN+FN #mcc=((TP*TN)-(FP*FN))/(math.sqrt(float(a*b*c*d)+0.0001)) F1=(2*TP)/float(2*TP+FP+FN+.0000001) # 在某些计算的分母中添加了一个小的正数 (0.0000001),以避免被零除错误。 precision=TP/float(TP+FP+.0000001) recall=TP/float(TP+FN+.0000001) TPR=TP/(TP+FN) FPR=FP/(FP+TN) print("**********************") print("F1 score:", F1) print("precision:", precision) print("recall:", recall) print("TPR:", TPR) print("FPR:", FPR) print("**********************") return TPR,FPR,F1,precision,recall代码为什么不执行
时间: 2023-06-05 20:08:34 浏览: 112
这是一个用Python编写的函数,用于计算二分类模型的混淆矩阵。输入参数为y_actual(实际标签)和y_hat(预测标签),输出结果为TP(真正样本数量)、FP(假正样本数量)、TN(真负样本数量)和FN(假负样本数量)。计算过程中通过循环遍历每一个样本,根据实际标签和预测标签的取值情况,对应地更新TP、FP、TN和FN的值。最后,通过调用metrics函数计算TPR(真正率,即TP/(TP+FN))和FPR(假正率,即FP/(FP+TN))等性能指标。
相关问题
补全代码:def compute_cost(X, y, w, b, lambda_= 1): m, n = X.shape return total_cost
def compute_cost(X, y, w, b, lambda_= 1):
m, n = X.shape
y_hat = np.dot(X, w) + b
cost = np.sum((y_hat - y)**2) / (2*m) + lambda_ * np.sum(w**2)
return cost
阅读全文