本文主要是介绍precision_score, recall_score, f1_score的计算,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1 使用numpy计算true positives等
- import numpy as np
-
- y_true = np.array([0, 1, 1, 0, 1, 0])
- y_pred = np.array([1, 1, 1, 0, 0, 1])
-
-
- TP = np.sum(np.multiply(y_true, y_pred))
- print(TP)
-
-
- FP = np.sum(np.logical_and(np.equal(y_true, 0), np.equal(y_pred, 1)))
- print(FP)
-
-
- FN = np.sum(np.logical_and(np.equal(y_true, 1), np.equal(y_pred, 0)))
- print(FN)
-
-
- TN = np.sum(np.logical_and(np.equal(y_true, 0), np.equal(y_pred, 0)))
- print(TN)
输出结果:
2
2
1
1
2 使用tensorflow计算true positives等
- import tensorflow as tf
-
- sess = tf.Session()
-
- y_true = tf.constant([0, 1, 1, 0, 1, 0])
- y_pred = tf.constant([1, 1, 1, 0, 0, 1])
-
-
- TP = tf.reduce_sum(tf.multiply(y_true, y_pred))
- print(sess.run(TP))
-
-
- FP = tf.reduce_sum(tf.cast(tf.logical_and(tf.equal(y_true, 0), tf.equal(y_pred, 1)), tf.int32))
- print(sess.run(FP))
-
-
- FN = tf.reduce_sum(tf.cast(tf.logical_and(tf.equal(y_true, 1), tf.equal(y_pred, 0)), tf.int32))
- print(sess.run(FN))
-
-
- TN = tf.reduce_sum(tf.cast(tf.logical_and(tf.equal(y_true, 0), tf.equal(y_pred, 0)), tf.int32))
- print(sess.run(TN))
输出结果:
2
2
1
1
3 使用sklearn的metrics模块计算precision,recall和f1-score
3.1 数据是list类型
- from sklearn.metrics import precision_score, recall_score, f1_score
-
- y_true = [0, 1, 1, 0, 1, 0]
- y_pred = [1, 1, 1, 0, 0, 1]
-
- p = precision_score(y_true, y_pred, average='binary')
- r = recall_score(y_true, y_pred, average='binary')
- f1score = f1_score(y_true, y_pred, average='binary')
-
- print(p)
- print(r)
- print(f1score)
输出结果:
0.5
0.666666666667
0.571428571429
3.2 数据是ndarray类型
- from sklearn.metrics import precision_score, recall_score, f1_score
- import numpy as np
-
- y_true = np.array([[0, 1, 1],
- [0, 1, 0]])
- y_pred = np.array([[1, 1, 1],
- [0, 0, 1]])
-
- y_true = np.reshape(y_true, [-1])
- y_pred = np.reshape(y_pred, [-1])
-
- p = precision_score(y_true, y_pred, average='binary')
- r = recall_score(y_true, y_pred, average='binary')
- f1score = f1_score(y_true, y_pred, average='binary')
-
- print(p)
- print(r)
- print(f1score)
输出结果:
0.5
0.666666666667
0.571428571429
转自:http://blog.csdn.net/blythe0107/article/details/75003890
这篇关于precision_score, recall_score, f1_score的计算的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!