机器学习:精确率与召回率的权衡

高精度 意味着如果诊断得了那种罕见病的病人,可能病人确实有,这是一个准确 的诊断,高召回率 意味着如果有一个还有这种罕见疾病的病人,也许算法会正确的识别他们确实患有这种疾病,事实中,在精确与召回之间往往有一个权衡。

精确率是真阳性的数量除以预测的总数,召回率是真正积极的数量除以实际阳性总数,如果用逻辑回归来做预测,然后Logistic回归模型将输出0-1之间的数字,我们通常将逻辑回归的输出阈值设置为0.5,如果高于0.5,预测为1,如果低于0.5,预测为0,假设我们要预测y=1,只有在非常有信心的情况下,这种罕见的疾病才会出现,所以如果每当我们预测病人有疾病,我们可能得送他们去接受一种可能是侵入性的昂贵治疗,所以如果疾病的后果不是那么糟糕,即使不被咄咄逼人的对待,那么我们可能想预测y只等于1,如果我们很有信心,那样的话,可以选择设置更好的阈值,只有当f(x)≥0.7时,才预测y=1,通过提高这个阈值,只有当你非常自信时,你才能预测y=1,这意味着精确度会提高,因为每当你预测一个,提高阈值将带来更高的精度,这也会导致召回率降低,因为现在很少预测一个,在这种疾病的患者总数中,我们将正确诊断更少的人,所以通过将阈值提高到0.7,最终的得到了更好的精度,更低的召回率,事实上,如果你想预测y=1,只有当你非常自信的时候,甚至可以把阈值提高到0.9,这导致了更高的精度,所以当你预测病人有疾病,你可能是对的,这将给你一个非常高的精度,另一方面,召回将进一步恶化,假设我们想避免错过太多这种罕见疾病的病例,所以如果我们想要的是在有疑问的时候预测y=1,这种情况可能是如果治疗不是太侵入性,痛苦或昂贵,但是让疾病得不到治疗对病人的后果要糟糕得多,所以在这种情况下,为了安全起见,可能会想到,预测他们有它,并考虑他们的治疗,如果对于应用程序来说,这是做出决定的更好方法,然后会接受这个阈值,而不是降低它,把它调到0.3,那样的话,只要你认为有30%的可能性,你就会预测到一个或者更好的是疾病存在,只有当你非常确定疾病不存在时,你才能预测零,可以想象,对精确度和召回率的影响将与你在这里看到的相反,降低这个阈值将导致更低的精确率,我们更愿意预测一个高阈值的数据,即使我们不确定,但是结果更高,因为所有有这种病的病人我们可能会正确的识别更多的他们,更普遍的说,只有当f高于某个阈值时,才能灵活的预测,通过选择这个阈值,我们可以在精确和召回之间做出不同的权衡,事实证明,对于大多数学习算法来说,在精确和召回之间有一个权衡,精度和召回都在0-1之间,如果设定一个很高的阈值,假设阈值为0.99,然后最终得到了非常高的精度和较低的召回,当你降低这个阈值的值时,然后你得到了一条曲线,它权衡了精确率和召回率,直到最终,如果你有一个很低的阈值,阈值等于0.01,然后你最终得到非常低的精度,但相对较高的召回率,有时通过绘制这条曲线,然后可以尝试选择一个阈值对应于在这条曲线上选择一个点,平衡了假阳性和假阴性的成本,或者平衡了高精度和高召回的好处,所以绘制不同阈值的精度和召回率允许你选择一个点,阈值并不是真正可以通过交叉验证来实现的,因为你可以为许多应用程序指定最佳点,手动选择阈值进行交易,精确率和召回率是最终要做的。

事实证明,如果你想自动权衡精度和召回,而不是自己动手,还有一个指标叫f(score),它有时用于自动组合精确率和召回率,来帮助选择最佳值 ,或者两者之间最好的权衡,精确召回的一个挑战是你现在使用两个不同的度量来评估你的算法,所以如果你训练了三种不同的算法,精确召回数字是这样的,如何选择使用哪种算法并不那么明显,有一种算法在精度和召回方面都很好,那你可能想用那个,但是在这个例子中,算法二精度最高,但算法三的召回率最高,算法一在两者之间进行权衡,所以显然没有一种算法是最好的选择,所以为了帮助你决定选择哪种算法,找到一种将精确和召回结合起来的方法可能是有用的,变成一个单一的分数,所以你可以看看哪个算法得分最高 ,可以把精确度和召回率结合起来的一个方法是取平均值,但事实证明,计算平均值和选择算法,精确率和召回率之间的最高平均值并不那么有效,因为这个算法的精度非常低,事实上,这可能与一种算法相呼应,这种算法实际上打印"y=1"诊断,所有病人都得了这种病,这就是为什么召回率是完美的,但是精确率真的很低,所以算法三实际上不是一个特别有用的算法,即使精确率和召回率之间的平均值相当高,所以不要用精确率和召回率之间的平均值,相反,结合精确率和召回率最常见的方法是计算一些东西,称为Fscore,Fscore是一种结合p和r精度和召回的方法,但这更强调这些值中较低的一个,因为如果一个算法有很低的精确率或者很低的召回率,可能没那么有用,所以Fscore是一种计算平均值的方法,其公式如下,不是平均p和r精确召回,而是平均1/p和1/r,如果p和r很小,那么Fscore也将会很小,计算可看出,第一个算法比第二、三个算法更好,在数学方面,这个方程也称为p和r的调和平均值,它是一种取平均值的方法,更强调较小的价值。

相关推荐
NAGNIP11 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
冬奇Lab12 小时前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab12 小时前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
AngelPP16 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年16 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼16 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS16 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区17 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈17 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang18 小时前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx