我是一个社交网络图,人们有朋友关系,兴趣和他们去过的事件。我想建立一个推荐系统,可以向人们推荐潜在的朋友。
我使用矩阵(不确定它是否正确)作为休闲:
{{1}}
如您所见,矩阵是混合数据类型矩阵。兴趣列是二进制数据{0,1},而Event_Type列是用户进行此类事件的次数。
我想在矩阵上应用聚类技术,以便对具有相似兴趣和行为的人进行分组,然后应用更多算法来分析特定组。
我认为我不能直接在矩阵上应用k均值或层次聚类,所以我尝试将矩阵变换为Gower距离矩阵,并在Gower距离矩阵上应用k-medoids算法。但是,我认为结果是关于对相似度的值进行分组而不是根据人们的相似性对人进行分组。
我对如何聚类原始矩阵感到困惑。我也很困惑如何开始建立人员推荐系统。
答案 0 :(得分:1)
群集不太适合推荐。
集群c。非常大。在最坏的情况下,几乎所有的点都在同一个集群中。然后你仍然有同样的问题,如何选择用户推荐。
相反,使用相似性搜索
答案 1 :(得分:0)
有不同的机器学习方法来构建你的朋友推荐系统。
如果您只有问题中显示的要素数据,则可以使用无监督方法,例如相似性搜索,就像Anony提到的那样。
1)根据功能,您可以使用 Pearson相关系数,余弦相似度或其他指标来定义用户相似度。
2)然后,您可以使用 K-nearest neighbor 来查找与推荐朋友最相似的前K个用户。
如果您已经拥有一些友情关系数据,则可以使用监督方法,这可能会给您带来更好的结果。根据现有的友谊数据,您可以找到更重要的功能并提供更多权重。您可以使用MF或其他方法。这是另一项任务!!!