[ML] 性能评估指标1---准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure(对于二分类问题)

1. 准确率(Accuracy)

准确率(accuracy),其定义是: 对于给定的测试数据集,分类器正确分类的样本数与总样本数之比。也就是损失函数是0-1损失时测试数据集上的准确率。accuracy=预测对的/所有

对于二分类问题,仅仅通过准确率不能很好的衡量分类器的性能,比如:
由准确率,我们的确可以在一些场合,从某种意义上得到一个分类器是否有效,但它并不总是能有效的评价一个分类器的工作。举个例子,google抓取了argcv 100个页面,而它索引中共有10,000,000个页面,随机抽一个页面,分类下,这是不是argcv的页面呢?如果以accuracy来判断我的工作,那我会把所有的页面都判断为"不是argcv的页面",因为我这样效率非常高(return false,一句话),而accuracy已经到了99.999%(9,999,900/10,000,000),完爆其它很多分类器辛辛苦苦算的值,而我这个算法显然不是需求期待的,那怎么解决呢?这就是precision,recall和f1-measure出场的时间了.

2. 精确率(Precision)

精确率(precision)的公式是,它计算的是所有"正确被检索的item(TP)"占所有"实际被检索到的(TP+FP)"的比例.

3. 召回率(Recall)

召回率(recall)的公式是​,它计算的是所有"正确被检索的item(TP)"占所有"应该检索到的item(TP+FN)"的比例。

4. F1-Measure

F1值就是精确值和召回率的调和均值,也就是

5. predict与recall

实际上非常简单,精确率是针对我们预测结果而言的,它表示的是预测为正的样本中有多少是真正的正样本。那么预测为正就有两种可能了,一种就是把正类预测为正类(TP),另一种就是把负类预测为正类(FP)。

召回率是针对我们原来的样本而言的,它表示的是样本中的正例有多少被预测正确了。那也有两种可能,一种是把原来的正类预测成正类(TP),另一种就是把原来的正类预测为负类(FN)。

对于predict与recall:一句话,准确率就是“找的对”,召回率就是“找的全”。

实际应用:
(1)如果是做搜索,则要在保证召回率理想的情况下,提升精确率;
(2)如果做疾病监测、反垃圾,则是要保证精确率的条件下,提升召回率。

6. auucracy与predict

精确率(precision)和准确率(accuracy)是不一样的

你可能感兴趣的:([ML] 性能评估指标1---准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure(对于二分类问题))