人们对人推荐系统
问题描述:
我有一个社交网络图,人们有朋友联系,兴趣,他们去的事件。我想建立一个推荐系统,可以向人们推荐潜在的朋友。人们对人推荐系统
我使用的是矩阵(不知道它是否是正确的)休耕:
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非常大。在最坏的情况下,几乎所有的点都在同一个集群中。那么你仍然有同样的问题,如何选择用户推荐。
相反,使用相似性搜索
- 建议基于共同利益
- 推荐10个most.similar用户基于共同的朋友
答
有不同的10个最相似的用户机器学习方法来构建你的朋友推荐系统。
-
如果只有特征数据,你在问题中显示,你可以使用无监督方法,如相似性搜索,像Anony mentiones。
1)根据所述特征,则可以使用Pearson相关系数,余弦相似度,或其它度量来定义用户的相似性。
2)然后,您可以使用K-最近邻居查找与推荐朋友相似的前K个用户。
如果你已经有一些友情关系数据,你可以使用监督的方法,这可能会给你更好的结果。根据现有的友谊数据,你可以发现哪些功能更重要,并给予更多的权重。您可以使用MF或其他方法。这是另一项任务!
非常感谢您!我发现相同的问题,难以使其趋于一致并确定群集的数量。我使用BFS来找到共同的朋友和相似度算法(如gower和CF-pearson)来获得相似度矩阵,但我真的想为用户制作一个排名列表。有没有一种算法可以将这两种信息结合在一起并给出建议的分数? – whataever
如果你想得到10个结果,那么没有什么*可靠*比每种方法的前5位更好。 –
明白了。谢谢! – whataever