tf.keras.metrics.AUC和sklearn.metrics.auc计算结果不一致

问题:

tf.keras.metrics.AUC和sklearn.metrics.auc计算结果差别较大,如果用这样一个不准确的auc设置earlystop,可能会影响模型效果

经过一天的调研,差别原因如下:

 sklearn.metrics.auc只会计算label=1的auc,而tf.keras.metrics.AUC在多分类情况下,会将每一类的输出flattened,视作一列计算(每个样本对于每一类的数据均会被视为一个点),在样本不均衡的情况下,会得到较高的AUC

解决方法:

auc = tf.keras.metrics.AUC(name='auc',num_thresholds=498
                           ,multi_label=True,label_weights=[0,1]) 

num_thresholds:切分阈值的数量,sklearn中默认为498,Keras中默认为200

multi_label:默认False,True为对每一类输出结果计算AUC,并求平均

label_weights:在multi_label=True的情况下,在AUC平均时给每一类结果设置权重

设置以上参数后,可使tf.keras.metrics.AUC和sklearn.metrics.auc计算的auc基本一致

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值