推荐算法中topK命中率的代码
时间: 2023-06-21 16:14:53 浏览: 54
以下是一个示例代码,实现了计算topK命中率的功能。其中,输入的参数包括真实的推荐结果、用户的历史行为、以及需要计算的topK值。代码中使用了Python的set数据结构,可以方便快速的进行交集和并集计算。
```python
def topk_hit_rate(recommendations, history, k):
# 将真实推荐结果和历史行为转换为集合
rec_set = set(recommendations)
hist_set = set(history)
# 计算真实推荐结果和历史行为的交集
intersection = rec_set.intersection(hist_set)
# 取出前k个推荐结果并转换为集合
topk_set = set(recommendations[:k])
# 计算前k个推荐结果和历史行为的并集
union = topk_set.union(hist_set)
# 计算topK命中率
hit_rate = len(intersection) / len(topk_set)
# 返回topK命中率
return hit_rate
```
使用方法:
```python
# 假设真实推荐结果为[1, 2, 3, 4, 5]
# 用户历史行为为[1, 2, 3, 6, 7]
# 计算top3命中率
hit_rate = topk_hit_rate([1, 2, 3, 4, 5], [1, 2, 3, 6, 7], 3)
print('top3命中率为:', hit_rate)
```
注:这里假设推荐结果和历史行为中的元素都是整数,如果是其他类型的元素,需要根据实际情况进行修改。