You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MLmetrics中F1_Score函数处理非二值y_pred的逻辑问询

MLmetrics包F1_Score函数传入非二值(概率)时的计算逻辑

当你直接将概率值传入F1_Score的y_pred参数时,函数并不会将其视为概率自动选择阈值,而是默认把y_pred中的值当作分类标签处理:只有当预测值严格等于你指定的positive类别(这里是"1",对应数值1)时,才会被判定为正类预测;所有其他数值(包括0.8、0.654这类概率值)都会被当作负类预测。

用你的示例数据验证计算过程:

  • 真实正类(y=1)共5个,仅第一个预测值x[1]=1被判定为正类预测,因此真阳性(TP)=1,剩余4个真实正类被误判为负类,假阴性(FN)=4。
  • 真实负类(y=0)共5个,所有预测值都不等于1,因此真阴性(TN)=5,假阳性(FP)=0。

基于这些指标计算F1得分:

  1. 精确率(Precision) = TP/(TP+FP) = 1/(1+0) = 1
  2. 召回率(Recall) = TP/(TP+FN) = 1/(1+4) = 0.2
  3. F1得分 = 2*(Precision*Recall)/(Precision+Recall) = 2*(1*0.2)/(1+0.2) = 0.3333333

这个结果完全匹配你得到的getF1。

而getF2是你手动用0.5阈值将概率转为二值标签后的结果:x_preds中有6个1(前5个真实正类+第8个真实负类),4个0。此时TP=5,FP=1,Recall=1,Precision=5/6,最终F1=2*(5/6*1)/(5/6+1)=10/11≈0.9090909,和官方文档逻辑一致。

内容的提问来源于stack exchange,提问作者Arianne Ford

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 09:41:06