知道Precision和Recall是什么但是还是有点在区别的时候犯迷糊,加上这次的题目出的感觉有点模糊,有些描述有点模棱两可
用通俗点的话来描述Precision和Recall分别就是
Precision:判断的准确率,在你判断为真的数据中事实上就是真的比例
Recall:在所有为真的数据中你判断为真的比例,也就是你没有漏判的程度
!!一般的,我们将数据中出现少的那一种情况定义为真!!
也就是,假设我们使用了logistic regression,最后给的h(x)在[0, 1],如果我们想更准确判断,那么会有更高的Precision,以及更低的Recall;而如果我们不想漏过某个为真的数据,那么会有更高的Recall,以及更低的Precision
因为我们取得的数据有可能会是skewed class,比如数据中99%的患者没有得癌症,而只有1%的患者得了癌症,这种情况下,单单使用accuracy来衡量某个学习算法是不好的,举一个反例就是我们可以让算法直接判断所有患者都没有得癌症,这样得到的accuracy达到了99%,但是这并不是我们想要的
因此我们使用F1score = (2 * Precision * Recall) / (Precision + Recall)来衡量
用上面那个例子,99%的患者没有得癌症
1> 假设我们判断所有的患者都得了癌症,我们得到了100%的Recall因为我们没有漏过任何一个病例,另一方面,我们得到了1%的Precision,因为实际上只有1%的患者得了癌症,而总准确率为0.01
2> 假设我们判断所有的患者都没有得癌症,我们得到了0%的Recall因为我们漏掉了所有病例,另一方面,我们得到了0%的Precision因为我们所有判断得癌症的准确率是0,而我们得总准确率却有0.99
我们在用F1score衡量的时候,会希望F1score越大越好。在最理想情况下,我们准确且未漏判所有得了癌症的患者,这个时候,我们的F1score为
F1score = (2 * 1 * 1) / (1 + 1) = 1
这么理了一下感觉清晰些了
PS:什么时候把前面学的也理一下呢