Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 用户相似性算法_Algorithm - Fatal编程技术网

Algorithm 用户相似性算法

Algorithm 用户相似性算法,algorithm,Algorithm,假设我有以下关于用户的数据 User1: {location: "Topeka, KS", school: "University of Texas", interests: ["running"] } User2: {location: "Austin, TX", school: "University of Texas", interests: ["knitting", "running"] } User3: {location: "Topeka, KS", school: "Univers

假设我有以下关于用户的数据

User1: {location: "Topeka, KS", school: "University of Texas", interests: ["running"] }
User2: {location: "Austin, TX", school: "University of Texas", interests: ["knitting", "running"] }
User3: {location: "Topeka, KS", school: "University of Kansas" interests: ["kayaking"]}
根据这些信息,我正在编写一个匹配算法,将“最佳”用户配对在一起。有几个标准:

  • 并非所有属性的权重都相等。比如说,“位置”比任何其他财产都要重要得多。在上面的例子中,尽管用户1和用户2共享两个属性(学校和“跑步”),但由于位置的高权重,用户1的最佳匹配仍然是用户3

  • 该算法在大规模运行时,应具有相当高的性能。这意味着我希望避免将每个用户单独与其他用户进行比较。对于N个用户,这是一个O(N^2)操作。理想情况下,我希望开发某种“分数”,我可以单独为每个用户生成,因为这涉及到只在所有用户之间循环一次。然后,我可以找到其他得分相似的用户,并根据他们的得分确定最佳匹配

  • 兴趣、地点、学校等的列表。。。没有提前知道。它们由外部API提供,可以是任何字符串

  • 有没有任何已知的算法可以以这种方式优化配对


    谢谢

    在你的情况下,我会使用聚类算法,在你的标准上设置不同的权重。谢谢!只要快速浏览一下维基百科页面,就会发现至少有六种类型的集群算法,每种算法都有多种算法实现。关于我可以研究的更具体类型的聚类算法,有什么想法吗?再次感谢!我真的不知道哪一个最适合,因为我只使用了k-means算法。这可能是一个好的开始。我正在寻找类似问题的解决方案。希望你能找到解决办法?你能分享一下吗?谢谢在你的情况下,我会使用聚类算法,在你的标准上设置不同的权重。谢谢!只要快速浏览一下维基百科页面,就会发现至少有六种类型的集群算法,每种算法都有多种算法实现。关于我可以研究的更具体类型的聚类算法,有什么想法吗?再次感谢!我真的不知道哪一个最适合,因为我只使用了k-means算法。这可能是一个好的开始。我正在寻找类似问题的解决方案。希望你能找到解决办法?你能分享一下吗?谢谢