首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实施F1评分

实施F1评分
EN

Code Review用户
提问于 2013-11-26 01:59:16
回答 1查看 5.4K关注 0票数 2

我正在尝试用Python实现F1评分在这里显示

我的函数的输入是预测列表和实际正确值的列表。我认为,计算真正、假负数和假阳性数的最有效方法是将这两组列表转换成两组,然后用集交集和差来找出兴趣的数量。这是我的密码

代码语言:javascript
复制
def F1_score(tags,predicted):


    tags=set(tags)
    predicted=set(predicted)

    tp=len(tags.intersection(predicted))
    fp=len(predicted.difference(tags))
    fn=len(tags.difference(predicted))

    if tp>0:
        precision=float(tp)/(tp+fp)
        recall=float(tp)/(tp+fn)


        return 2*((precision*recall)/(precision+recall))
    else:
        return 0
EN

回答 1

Code Review用户

回答已采纳

发布于 2013-11-26 09:44:35

若要计算集合差的长度,只需从集合的长度减去交集的长度。在计算差异时,您可以使用这个交集。减去交集可以得到相同的结果,但处理的元素较少。

代码语言:javascript
复制
tags = set(tags)
predicted = set(predicted)

tp = len(tags & predicted)
fp = len(predicted) - tp 
fn = len(tags) - tp

注意,为了提高可读性,我在操作符周围添加了空格。作为首选,我还使用了&运算符而不是intersection方法。

票数 3
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/36096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档