人们对人推荐系统

问题描述:

我有一个社交网络图,人们有朋友联系,兴趣,他们去的事件。我想建立一个推荐系统,可以向人们推荐潜在的朋友。人们对人推荐系统

我使用的是矩阵(不知道它是否是正确的)休耕:

Interest1 Interest2 Interest3 Event_Type1 Event_Type2 Event_Type3 
u1  1  0   1   3   5   2 
u2  0  0   1   1   0   2 
u3  1  1   0   2   1   7 

正如你所看到的,矩阵是混合数据类型的矩阵。兴趣列是二进制数据{0,1},Event_Type列是用户进入这种事件的次数。

我想在矩阵上应用聚类技术,以便将具有相似兴趣和行为的人群分组,然后应用更多算法来分析特定组。

我想我不能直接在矩阵上应用k-means或分层聚类,所以我试图将矩阵转换成Gower距离矩阵,并在Gower距离矩阵上应用k-medoids算法。但是,我认为结果是根据相似性将相似度的值分组,而不是基于相似性的人。

我很困惑如何对原始矩阵进行聚类。我也对如何开始建立人员推荐系统感到困惑。

集群不太适合推荐。

集群c.an非常大。在最坏的情况下,几乎所有的点都在同一个集群中。那么你仍然有同样的问题,如何选择用户推荐。

相反,使用相似性搜索

  1. 建议基于共同利益
  2. 推荐10个most.similar用户基于共同的朋友
+0

非常感谢您!我发现相同的问题,难以使其趋于一致并确定群集的数量。我使用BFS来找到共同的朋友和相似度算法(如gower和CF-pearson)来获得相似度矩阵,但我真的想为用户制作一个排名列表。有没有一种算法可以将这两种信息结合在一起并给出建议的分数? – whataever

+0

如果你想得到10个结果,那么没有什么*可靠*比每种方法的前5位更好。 –

+0

明白了。谢谢! – whataever

有不同的10个最相似的用户机器学习方法来构建你的朋友推荐系统。

  1. 如果只有特征数据,你在问题中显示,你可以使用无监督方法,如相似性搜索,像Anony mentiones。

    1)根据所述特征,则可以使用Pearson相关系数余弦相似度,或其它度量来定义用户的相似性。

    2)然后,您可以使用K-最近邻居查找与推荐朋友相似的前K个用户。

  2. 如果你已经有一些友情关系数据,你可以使用监督的方法,这可能会给你更好的结果。根据现有的友谊数据,你可以发现哪些功能更重要,并给予更多的权重。您可以使用MF或其他方法。这是另一项任务!

+0

谢谢!我使用Pearson相关系数和gower距离来计算相似性矩阵。受监督的预测是一个很好的观点!在未来的计划中,我们可能会使用此方法来筛选阈值并提供其他算法。我会看看K最近的邻居。 – whataever

+0

通常你有一些真正的友谊关系,那么我强烈建议你使用监督的方法。一般来说,这会改善你的结果。 – HenryZhao