我想知道是否有一种方法可以实现scikit learn包中不同的score函数,如下所示:
from sklearn.metrics import confusion_matrix
confusion_matrix(y_true, y_pred)
进入张量流模型得到不同的分数。
with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess:
init = tf.initialize_all_variables()
sess.run(init)
for epoch in xrange(1):
avg_cost = 0.
total_batch = len(train_arrays) / batch_size
for batch in range(total_batch):
train_step.run(feed_dict = {x: train_arrays, y: train_labels})
avg_cost += sess.run(cost, feed_dict={x: train_arrays, y: train_labels})/total_batch
if epoch % display_step == 0:
print "Epoch:", '%04d' % (epoch+1), "cost=", "{:.9f}".format(avg_cost)
print "Optimization Finished!"
correct_prediction = tf.equal(tf.argmax(pred, 1), tf.argmax(y, 1))
# Calculate accuracy
accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))
print "Accuracy:", batch, accuracy.eval({x: test_arrays, y: test_labels})
我需要再次运行会话才能得到预测结果吗?
你并不真的需要sklearn来计算精度/召回/f1分数。你可以很容易地通过公式来表达它们:
现在,如果将
actual
和predicted
值作为0/1的向量,则可以使用tf.count_nonzero计算TP、TN、FP、FN:现在,您的指标很容易计算:
也许这个例子会告诉你:
多标签盒
以前的答案没有指定如何处理多标签情况,因此这里有这样一个版本,它在tensorflow中实现了三种类型的多标签f1分数:micro、macro和weighted(根据scikit learn)
更新(06/06/18):我写了一篇blog post关于如何计算流媒体多标签f1分数,以防对任何人有帮助(这是一个较长的过程,不想让这个答案过载)
正确性
输出:
相关问题 更多 >
编程相关推荐