我已经使用def定义了8种算法的ROC曲线,它们都出现在同一张图中。但是,我不能为每种算法分别输出ROC曲线。
这是我的编码:
def plotROCCurveAcrossModels(positive_rates_sequence, label_sequence):
for plot_values, label_name in zip(positive_rates_sequence, label_sequence):
plot.plot(list(plot_values[0]), list(plot_values[1]), label = "ROC Curve for model: "+label_name)
plot.plot([0, 1], [0, 1], 'k--', label = 'Baseline')
plot.title('ROC Curve across models')
plot.xlabel('False Positive Rate')
plot.ylabel('True Positive Rate')
plot.legend(loc='best')
plot.show()
然后
roc_curve_input = {}
for i , j in enumerate(model_metrics):
_matrix = model_metrics[j]['confusion_matrix']
plot_confusion_matrix(_matrix, classes = [0,1], title = 'Confusion Matrix for %s'%j)
if model_metrics[j]['roc_curve']:
roc_curve_input[j]= model_metrics[j]['roc_curve']
plotROCCurveAcrossModels(list(roc_curve_input.values()), list(roc_curve_input.keys()))
输出:
我可以保留原始图形并分别输出每种算法的ROC曲线吗?