Spark ML 3.模型评价指标,准确率、精确率、召回率


在机器学习 准确率(accuracy),精确率(Precision),召回率(Recall)和 综合评价指标(F1-Measure )

一、说明

有一个模型,能够在100人中找出程序猿,找的结果如下(混淆矩阵):

实际 \ 预测 True(预测是程序猿) False(预测不是程序猿)
True(实际是程序猿) TP (实际是程序猿,预测是程序猿) FN (实际是程序猿,预测不是程序猿。这个很Negative,因为把应该找到的漏掉了)
False(实际不是程序猿) FP(实际不是程序猿,预测成是程序猿。这个很Positive,因为没有漏掉结果) TN(实际不是程序猿,预测不是程序猿)
名称 公式 描述
准确率 True/total = (TP+TN)/(TP+TN+FP+FN) 预测对了百分之几?
精确度 p= TP/(TP+FP) 找出的程序猿里面,有多少是真的程序猿?
召回率 R=TP/(TP+FN) 所有的程序猿里面,找出来了多少?
F1 (2PR)/(P+R) 公式

二、示例

一共有100个人的数据样本,其中程序猿有20个人,有80个人不是程序猿。

现在有一个系统,能够预测人员分类的情况。预测结果为:找到了50个人是程序猿。与标签对比后发现,这50个人里,有20个人确实是程序猿,有30个人不是程序猿。

模型准确率 = 判断对的人数/总人数=(程序猿判断为程序猿(20)+ 非程序猿判断为非程序猿(50))/ 总人数(100)=(20+50)/100= 70%
模型精确度 = 判断是程序猿的人里面(50),有多少真的是程序猿(20)= 20/50= 40%
召回率 = 在程序猿的总数中(20),找到了多少(20)= 20 /20 = 100%
F 1 = 2 * 精确度(40%) * 召回率(100%) / (精确度(40%) + 召回率(100%))= 2 * 40% * 100% / ( 40% + 100% )= 57.1%

文章作者: hnbian
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 hnbian !
评论
  目录