版权声明:转载请联系作者,获得允许后,添加链接及作者到页首 https://blog.csdn.net/weixin_40683253/article/details/86616298
衡量二分类器的评价指标有:召回率(Recall)、精确率(Precision)、F1 值(F-Measure)、准确率(Accuracy)等。
为了便于解说,我们来看这张二分类的表,表中共有两列--实际值(样本中实际的分类结果)和预测值(通过算法预测的分类结果)。
通俗的讲,
- 召回率:实际值中的 1 有百分之多少同时也被预测为 1 了;
- 精确率:预测值中的 1 有百分之多少是预测正确的(预测正确指预测值与实际值都是 1 );
- F1 值 :调和召回率和精确率;
- 准确率:预测值中的 0 和 1 都预测对占所有预测值的比例;
计算公式的讲,
- True Positive (TP):将 1 预测为 1 的数量;
- True Negative (TN):将 0 预测为 0 的数量;
- False Positive (FP):将 0 预测为 1 的数量;
- False Negative (FN):将 1 预测为 0 的数量;
召回率: Recall = TP / ( TP + FN );
精确率: Precision = TP / ( TP + FP );
F1 值 : F1 = 2 * Recall * Precision / (Recall + Precision) = 2 * TP / ( 2 * TP + FP + FN );
准确率: Accuracy = ( TP + TN ) / ( TP + TN + FP + FN );
Python代码的讲,
tp = ((n_yuce==1) & (n_true==1)).sum()
fn = ((n_yuce==0) & (n_true==1)).sum()
fp = ((n_yuce==1) & (n_true==0)).sum()
tn = ((n_yuce==0) & (n_true==0)).sum()
recall = tp/(tp+fn)
precision_score = tp/(tp+fp)
f1 = 2*precision_score*recall/(precision_score+recall)
accuracy = (tp+tn)/(tp+tn+fp+fn)
或者,
from sklearn.metrics import accuracy_score,precision_score,recall_score,f1_score,cohen_kappa_score
recall = recall_score(n_yuce,n_true)
precision = precision_score(n_yuce,n_true)
f1 = f1_score(n_yuce,n_true)
#准确率
with tf.name_scope("accuracy"):
correct_predictions = tf.equal(self.predictions,self.input_y)
self.accuracy = tf.reduce_mean(tf.cast(correct_predictions, "float"), name="accuracy")