import tensorflow as tf
from sklearn import metrics
#定义 graph结构
def model_cnn():
...
# pred 模型输出的预测结果
pred=model_cnn()
# 计算 auc
correct_prediction = tf.equal(tf.argmax(pred, 1), tf.argmax(y, 1))
acc = tf.reduce_mean(tf.cast(correct_prediction, "float"))
# 计算 f1
model_pred = tf.argmax(pred, 1)
model_True=tf.argmax(y,1)
with tf.Session() as sess:
init = tf.initialize_all_variables()
sess.run(init)
for epoch in range(150):
for i in range(total_batch):
# train_labels->shape:(-1,2)
acc,y_pred,_y_true= sess.run([acc,model_pred,model_True], feed_dict={x: train_arrays, y: train_labels})
model_f1_score=f1_score(y_true,y_pred)
if epoch % display_step == 0:
print("acc=", "{:.9f}".format(avg_cost))
print( 'f1_score= "{:.9f}"'.format(model_f1_score))
print("Precision", metrics.precision_score(tf.argmax(train_labels), y_pred))
print("Recall", metrics.recall_score(tf.argmax(train_labels), y_pred))
print("f1_score", metrics.f1_score(tf.argmax(train_labels), y_pred))
print("confusion_matrix")
print(metrics.confusion_matrix(tf.argmax(train_labels), y_pred))
fpr, tpr, tresholds = metrics.roc_curve(tf.argmax(train_labels), y_pred)