【发布时间】:2020-01-03 08:26:18
【问题描述】:
我创建了一个自动编码器模型并使用图像序列数据集对其进行训练。测试集的最终结果是重建图像。如何绘制 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 是包含我的检测分数的最终结果。
【问题讨论】:
-
你能分享一些关于你到目前为止所做的示例代码,以便它会有所帮助
-
我已经编辑了我的帖子并添加了示例代码。
-
ROC 和 AUC 是为二进制分类定义的,那么它与你的自动编码器有什么关系呢?
-
@MatiasValdenegro 我的工作是异常检测,它检测帧中的异常或正常事件。 sr分数决定帧是异常还是正常。我审查的大部分工作都会计算 AUC 以与另一项工作进行比较。
-
这个已经回答过了,看重复的回答,y_score是你的sr
标签: keras tensorflow2.0 autoencoder tf.keras