python中的推荐引擎-合并自定义相似性度量

python中的推荐引擎-合并自定义相似性度量,python,machine-learning,recommendation-engine,data-science,Python,Machine Learning,Recommendation Engine,Data Science,我目前正在用python构建一个推荐引擎,我面临以下问题 我想结合协同过滤方法,它的用户变体。总而言之,它的想法是,我们有一个关于不同用户的信息,以及他们喜欢哪些项目(如果适用,这些用户为项目分配了哪些评级)。当我们有新用户喜欢一些东西时,我们只会找到喜欢相同项目的用户,并向新用户推荐与新用户相似的用户喜欢的项目 但我想给它增加一些变化。我将向用户推荐地点,即“今晚去哪里”。我知道用户的偏好,但我也想将距离与我可以推荐的每个项目结合起来。父亲是我要向用户推荐的地方——应该是最不吸引人的地方 所以

我目前正在用python构建一个推荐引擎,我面临以下问题

我想结合协同过滤方法,它的用户变体。总而言之,它的想法是,我们有一个关于不同用户的信息,以及他们喜欢哪些项目(如果适用,这些用户为项目分配了哪些评级)。当我们有新用户喜欢一些东西时,我们只会找到喜欢相同项目的用户,并向新用户推荐与新用户相似的用户喜欢的项目

但我想给它增加一些变化。我将向用户推荐地点,即“今晚去哪里”。我知道用户的偏好,但我也想将距离与我可以推荐的每个项目结合起来。父亲是我要向用户推荐的地方——应该是最不吸引人的地方

所以一般来说,我想在推荐引擎中加入一个惩罚,每个位置的惩罚量将基于用户到位置的距离


我试着用谷歌搜索是否有人做过类似的事情,但什么也找不到。有没有关于如何适当增加此类处罚的建议

我会保持它的简单性和独立性:

您的重点是协同过滤,因此您的推荐人应该为排名前N的推荐生成分数,而不管位置如何


然后,您可以使用前N名之间的距离重新评分。对于简单的MVP,您可以从反向距离衰减开始(例如,
最终分数=cf分数*1/距离
),并在必要时根据行为证据调整衰减函数。

我会保持它的简单性和独立性:

您的重点是协同过滤,因此您的推荐人应该为排名前N的推荐生成分数,而不管位置如何

然后,您可以使用前N名之间的距离重新评分。对于简单的MVP,您可以从反向距离衰减开始(例如
最终分数=cf分数*1/距离
),必要时根据行为证据调整衰减函数