我将找到一个合适的功能,以便根据他们的最爱获得两个人之间的准确相似性。
例如,人们连接到标签,并且他们对每个标签的期望将作为数值保持在标签节点的边缘上。我想向每个人推荐类似的人。我找到了两个解决方案:
在Neo4j中有余弦函数只接受一个输入而在上面的函数中我需要将vectores传递给这个公式。如:
对于" a":a = [10,20,45]每个数字表示人们对每个标签的愿望。 for" b":b = [20,50,70]
当我在网上冲浪时,我发现你的文件: http://neo4j.com/docs/stable/cypher-cookbook-similarity-calc.html#cookbook-calculate-similarities-by-complex-calculations
我的问题是这个公式背后的逻辑是什么? r和H有什么区别?
因为乍一看我认为H1或H2总是等于1。除非我应该考虑图表的其余部分。
感谢您提前获取任何帮助。
答案 0 :(得分:1)
这个例子让人有点难以理解发生了什么。在这个例子中,H1和H2都是1.一个更好的例子可以显示每个人吃不同类型的食物,所以你能够看到H值的变化。如果" me"还吃了"蔬菜","披萨"和"热狗",他们的H将是4.
答案 1 :(得分:1)
我认为H1
和H2
的目的是规范食物类型中times
属性(用户吃食物的次数)的结果。您可以在此Neo4j console
由于您提及其他相似性度量,您可能对此GraphGist Similarity Measures For Collaborative Filtering With Cypher感兴趣。它有一些使用Cypher计算Pearson相关性和Jaccard相似性的简单例子。
答案 2 :(得分:1)
无法帮助您使用Neo4J,只想指出Cosine Similarity和Pearsons'相关系数基本上是一回事。如果您解码不同的符号,您会发现唯一的区别是Pearsons首先将向量置零。所以你可以按如下方式定义Pearsons:
Pearsons(a, b) = Cosine(a - mean(a), b - mean(b))