(这不是家庭作业,也不是工作问题。这只是我个人的兴趣/职业,完全是虚构的但我对一个好的算法或数据结构感兴趣。)
假设我会经营一个约会网站我的特别之处在于,单曲与电影的品味相得益彰。(为什么不呢?)
在这种情况下,我需要一种方法来存储每个用户的电影分级(到目前为止没有问题)我需要一个数据结构来找到最合适的用户两种口味模式之间的距离将是两个用户所做的所有评分之间的平均距离。
例子
movies A B C D E F G H I J K L M ...
user Xm 9 5 1 1 5
user Ym 4 6 1 8
user Zf 9 6 4 7
距离(X,Z)=平均值(abs(9-9)+abs(1-4))=1.5
距离(y,z)=平均值(abs(4-6)+abs(6-4)+abs(8-7))=1.666
所以X先生比Y先生更适合Z女士。
我喜欢那个。。。
…不需要对数据库执行很多操作
…不需要处理很多数据
... 快跑
…提供最佳匹配
好吧,也许我也会考虑好的近似值。
请记住,这也应该适用于数千个可能的电影,只有20-50部电影的用户,以及数千个用户。
(因为这是一个智力难题,而不是真正的问题,自以为是的工作并没有真正的帮助。)
你的搜索算法或数据结构是什么?
最佳答案
听起来很像Netflix Prize挑战,更确切地说是最流行的方法的前半部分。你正在尝试做的事情的可能实现是多种多样的。它们都不是特别有效的,l1度量对于可靠的相关性不是特别好的选择。
关于algorithm - 如何存储集,快速找到相似的模式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/462563/