Python 函数:计算 ROC 和平均精度得分 (ROC-AUC 和 AP)
定义一个函数,计算ROC和平均精度得分
定义一个函数,计算ROC和平均精度得分
def get_roc_score(sim, adj_orig, edges_pos, edges_neg): # 定义sigmoid函数 def sigmoid(x): return 1 / (1 + np.exp(-x))
# 预测测试集中的边
preds = []
pos = []
for e in edges_pos:
preds.append(sim[e[0], e[1]]) # 预测得分
pos.append(adj_orig[e[0], e[1]]) # 实际标签
preds_neg = []
neg = []
for e in edges_neg:
preds_neg.append(sim[e[0], e[1]]) # 预测得分
neg.append(adj_orig[e[0], e[1]]) # 实际标签
preds_all = np.hstack([preds, preds_neg]) # 将预测得分在水平方向上平铺
labels_all = np.hstack([np.ones(len(preds)), np.zeros(len(preds_neg))]) # 将实际标签在水平方向上平铺
roc_score = roc_auc_score(labels_all, preds_all) # 计算ROC得分
ap_score = average_precision_score(labels_all, preds_all) # 计算平均精度得分
return roc_score, ap_score # 返回ROC和平均精度得分
原文地址: https://www.cveoy.top/t/topic/jODn 著作权归作者所有。请勿转载和采集!