def roc_test_r(targets_1, scores_1, targets_2, scores_2, method='delong'):
# method: “delong”, “bootstrap” or “venkatraman”
importr('pROC')
robj.globalenv['targets_1'] = targets_1 = robj.FloatVector(targets_1)
robj.globalenv['scores_1'] = scores_1 = robj.FloatVector(scores_1)
robj.globalenv['targets_2'] = targets_2 = robj.FloatVector(targets_2)
robj.globalenv['scores_2'] = scores_2 = robj.FloatVector(scores_2)
r('roc_1 <- roc(targets_1, scores_1)')
r('roc_2 <- roc(targets_2, scores_2)')
r('result = roc.test(roc_1, roc_2, method="%s")' % method)
p_value = r('p_value = result$p.value')
return np.array(p_value)[0]
该代码使用R语言的pROC包进行ROC曲线的绘制与比较,通过'roc.test'函数以'delong'、'bootstrap'或'venakraman'方法计算两个ROC曲线的显著性差异,并返回p值。
4588

被折叠的 条评论
为什么被折叠?



