结合源码分析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 |
- 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 |