如何在自动编码器模型上绘制ROC曲线并计算AUC?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在自动编码器模型上绘制ROC曲线并计算AUC?相关的知识,希望对你有一定的参考价值。

我创建了一个自动编码器模型,并使用图像序列数据集对其进行了训练。测试集的最终结果是重建图像。如何绘制ROC曲线并计算AUC?

编辑:这是我的代码:

    model = AutoEncoder()
    model.compile(loss='mse', optimizer='adam')
    model.fit(dm, dm, 
          batch_size=batchSize, 
          epochs=epochs, 
          shuffle=False,
          callbacks=callbacks_list, verbose=1
          )

    # load testset
    ....
    reconstructed_sequences = model.predict(sequences,batch_size=1)
    sequences_reconstruction_cost = np.array([np.linalg.norm(np.subtract(sequences[i],reconstructed_sequences[i])) for i in range(0,sz)])
    sa = (sequences_reconstruction_cost - np.min(sequences_reconstruction_cost)) / np.max(sequences_reconstruction_cost)
    sr = 1.0 - sa

其中sr是包含我的检测分数的最终结果。

答案

您需要运行从最小(sr)到最大(sr)的阈值范围,并为每个值计数四倍(真负(TN),真正(TP),假负(FN),假正(FP) ))获取许多列联表。然后针对每个阈值计算灵敏度= TP /(TP + FN)和特异性= TN /(FP + TN)。接收器工作特性(ROC)曲线是1-特异性(X轴)对灵敏度(Y轴)的曲线图。应该不太难用python编写代码。

以上是关于如何在自动编码器模型上绘制ROC曲线并计算AUC?的主要内容,如果未能解决你的问题,请参考以下文章

R语言构建logistic回归模型并评估模型:模型预测结果抽样可视化模型分类预测的概率分布情况使用WVPlots包绘制ROC曲线并计算AUC值

如何在 Python 中绘制 ROC 曲线

R语言plotly可视化:使用plotly可视化二分类模型的ROC曲线计算并在曲线中添加AUC值(basic binary ROC curve and auc score)

R语言plotly可视化:使用plotly可视化多分类模型的ROC曲线计算并在曲线中添加AUC值(multiclass classification ROC curve and auc score)

r 使用ggplot / normal plot计算并绘制接收器工作特性曲线下的面积(AUC)(ROC)。

PR曲线,ROC曲线以及绘制,AUC