结合源码分析Spark中的Accuracy(准确率), Precision(精确率), 和F1-Measure

Posted mishidemudong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结合源码分析Spark中的Accuracy(准确率), Precision(精确率), 和F1-Measure相关的知识,希望对你有一定的参考价值。

例子

某大学一个系,总共100人,其中男90人,女10人,现在根据每个人的特征,预测性别

Accuracy(准确率)

Accuracy=

计算

由于我知道男生远多于女生,所以我完全无视特征,直接预测所有人都是男生 
我预测所的人都是男生,而实际有90个男生,所以 
预测正确的数量 = 90 
需要预测的总数 = 100 
Accuracy = 90 / 100 = 90%

问题

在男女比例严重不均匀的情况下,我只要预测全是男生,就能获得极高的Accuracy。 
所以在正负样本严重不均匀的情况下,Accuracy指标失效

Precision(精确率), Recall(召回率)

. 实际为真 实际为假
预测为真 TP FP
预测为假 FN TN
# 前面的T和F,代表预测是否正确
# 后面的P和N,代表预测是真还是假
TP:预测为真,正确了
FP:预测为真,结果错了
TN:预测为假,正确了
FN:预测为假,结果错了
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

Precision=TPTP+FP=

Recall=TPTP+FN=

计算

注意:在正负样本严重不均匀的情况下,正样本必须是数量少的那一类。这里女生是正样本。是不是女生,是则预测为真,不是则预测为假。

  • 如果没有预测为真的情况,计算时分母会为0,所以做了调整,也容易比较Accuracy和Precision, Recall的区别
. 实际为真 实际为假
预测为真 1以上是关于结合源码分析Spark中的Accuracy(准确率), Precision(精确率), 和F1-Measure的主要内容,如果未能解决你的问题,请参考以下文章

结合源码分析Spark中的Accuracy(准确率), Precision(精确率), 和F1-Measure

Accuracy(准确率), Precision(精确率), 和F1-Measure, 结合Spark源码分析

准确率(Accuracy) 精确率(Precision) 召回率(Recall)和F1-Measure(精确率和召回率的调和平均值)

结合Spark源码分析, combineByKey, aggregateByKey, foldByKey, reduceByKey

Keras.metrics中的accuracy总结

Spark GBTClassifier 始终以 100% 的准确率进行预测

(c)2006-2024 SYSTEM All Rights Reserved IT常识