题解 | 多分类加权指标计算

多分类加权指标计算

https://www.nowcoder.com/practice/dec560ebcd8c47c9a37f6df692c38d25

def read(type):
    return list(map(type,input().split()))

pred=read(int)
gt=read(int)
ws=read(float)

# tp, fp, fn
cs=[[0]*3 for _ in ws]

for p,g in zip(pred,gt):
    if p==g:
        cs[p][0]+=1
    else:
        cs[p][1]+=1
        cs[g][2]+=1

ms=[]

for tp,fp,fn in cs:
    p=tp/(tp+fp) if tp+fp!=0 else 0
    r=tp/(tp+fn) if tp+fn!=0 else 0
    f=2*p*r/(p+r) if p+r!=0 else 0
    ms.append((p,r,f))

resp,resr,resf=0,0,0
for (ps,rs,fs),w in zip(ms,ws):
    resp+=w*ps
    resr+=w*rs
    resf+=w*fs

print(f"{resp:.2f} {resr:.2f} {resf:.2f}")

全部评论

相关推荐

牛客93169152...:可以发邮件,我停了三天没收到链接,发邮件问了一下,十分钟后就有了
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务