首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计算python中两个列表的精确性和召回率

如何计算python中两个列表的精确性和召回率
EN

Stack Overflow用户
提问于 2019-05-02 12:24:26
回答 1查看 2.3K关注 0票数 1

我写了一个电影推荐系统。我有向用户推荐的20部电影和150部最终用户真正看过的电影的列表。我如何在python中计算出这两个列表中的精确性和回忆性呢?

例如,我推荐给用户的10部电影是用户真实看到的,计算结果是: 10/150,精度计算是: 10/20。

EN

回答 1

Stack Overflow用户

发布于 2019-05-02 12:48:16

据我所读,最简单的方法是在两个集合之间使用intersection

我设想您对电影使用某种标识符,这样列表就不能有副本(例如,您可能不会推荐同一部电影两次),这意味着您可以使用集合及其内置的intersection

代码语言:javascript
复制
recommendations={"movie1", "movie2", "movie3"}
saw={"movie1", "movie2", "movie4", "movie5", "movie6"}

"recommended movies saw by the user"
recommendations.intersection(saw)
>>> {"movie1", "movie2"}

# To get the "number of recommended movie that the user saw":
movie_intersect = len(recommendations.intersection(saw))
movie_intersect
>>> 2

# Precision is just:
movie_intersect/len(recommendations)
>>> 0.666666666666666667

# Recall:
movie_intersect/len(saw)
>>> 0.4
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55952408

复制
相关文章

相似问题

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