ROC曲线全程为受试者工作特性(Receiver Operating Characteristic)曲线,可以用来评价学习器的泛化性能。首先我们根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出两个重要的值,分别以他们为横纵坐标作图,就得到了ROC曲线。ROC曲线的横轴为假正例率(FPR), 纵轴为真正例率(TPR),计算公式分别为:
FPR = FP/(FP+TN); TPR=TP/(TP+FN).
程序分为三个部分:1.获得学习器的输出值 2.根据输出求出FPR和TPR 3.绘制ROC图
一 、获得学习器的输出
x = tf.placeholder(dtype=tf.float32, shape=[1, 224, 224, 3])
sess = tf.InteractiveSession()
#build the network
arg_scope = alexnet.alexnet_v2_arg_scope()
with slim.arg_scope(arg_scope):
logits, _ = alexnet.alexnet_v2(x, num_classes=2, is_training=False)
'''
model = net.Alexnet("pre_trained/alexnet.npy")
logits = model.build(x)
'''
saver = tf.train.Saver()
tf.global_variables_initializer().run()
#restore the pre-trained