Evaluation
Accuracy/Precision/Recall/FI-Measure
在机器学习邻域,用于评估的标准
给一个具体场景
有一个篮子,其中有30个橘子和70个苹果,
现在需要机器将其中的橘子挑出来。
经过一番挑拣,挑了30个机器认为是橘子的水果,
其中有20个橘子和10个苹果
正类:需要检索输出的类。在该场景下就是橘子。
负类:不需要检索输出的类。在该场景下就是苹果。
相关(Relevant) 正类 | 无关(NonRelevant) 负类 | |
---|---|---|
被检索到(Retrieved) | TP(true positives)判断结果中正类的数量 | FP(false positives)判断结果中负类的数量 |
违背检索到(NotRetrieved) | FN(false negatives)除判断结果外中正类的数量 | TN(true)除判断结果外负类的数量 |
根据场景,我们得到一个表
相关(Relevant) 正类-橘子 | 无关(NonRelevant) 负类-苹果 | |
---|---|---|
被检索到(Retrieved) | TP=20 | FP=10 |
违背检索到(NotRetrieved) | FN=10 | TN=60 |
-
准确率(Accuracy):对于给定的数据集,分类器正确分类的样本数与总样本数之比,即损失函数是0-1损失时测试数据集上的准确率。
在该场景下简单来说就是分正确的水果与所有水果的比值,准确率为20/100 = 20%。
Accuracy = TP/(TP+FP+FN+TN) -
精确率(Precision):对于给定数据集,正确呗检索的结果TP与实际被检索的结果TP+FN的比值
在该场景下精确率为20/(20+10) = 66.7%
Precision = TP/(TP+FP) -
召回率(Recall):对于给定数据集,正确被检索的结果TP与应该被检索到的结果TP+FN的比值
在该场景下召回率为20/(20+10) = 66.7%
Recall = TP/(TP+FN) -
F1-Measure:
精确值和召回率的调和均值
在该例子中F1为 2 ∗ 2 3 ∗ 2 3 2 3 + 2 3 \frac{2*\frac{2}{3}*\frac{2}{3}}{\frac{2}{3}+\frac{2}{3}} 32+322∗32∗32 = 66.7%
2 F 1 \frac{2}{F1} F12 = 1 P r e c i s i o n \frac{1}{Precision} Precision1 + 1 R e c a l l \frac{1}{Recall} Recall1F1 = 2 ∗ P r e c i s i o n ∗ R e c a l l P r e c i s i o n + R e c a l l \frac{2*Precision*Recall}{Precision+Recall} Precision+Recall2∗Precision∗Recall = $\frac{2TP}{2TP+FP+FN
Mean reciprocal
常用来衡量搜索算法效果的指标,广泛用在允许返回多个结果的问题。系统对每一个返回的结果给一个置信度,根据置信度排序,得分高的结果排在前面返回。
核心思想:返回的结果集的优劣,跟第一个正确答案的位置有关,第一个正确答案越靠前,结果越好。
对于一个query,若第一个正确答案排在第n位,则MRR得分就是
1
n
\frac{1}{n}
n1。(如果没有正确答案,则得分为0)
Bootstrapping
对于一个含有少量已知结果的数据集L和一个含有大量未知结果的数据集U。使用L训练机器,逐步通过U来扩充L,从而得到最终的分类器。
1. 使用L,应用选择的分类方法训练分类器H(用于对未知结果的数据集进行分类,通常是一些启发式规则)。
2. 使用H对U进行分类。
3. 在(2)中获取的对U的分类结果中选择置信度较高的数据加入到L中
4. 重复上述过程直到满足迭代结束条件。
MRR =
1
∣
Q
∣
∑
i
=
1
∣
Q
∣
1
r
a
n
k
i
\frac{1}{|Q|}\sum_{i = 1}^{|Q|}\frac{1}{rank_{i}}
∣Q∣1∑i=1∣Q∣ranki1