人对人推荐系统
People to people recommender system
我有一个社交网络图表,人们可以在其中了解朋友关系、兴趣和参加的活动。我想建立一个推荐系统,可以向人们推荐潜在的朋友。
我正在使用一个矩阵(不确定它是否正确)作为休闲:
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
如您所见,该矩阵是一个混合数据类型矩阵。 Interest 列是二进制数据 {0,1},Event_Type 列是用户参加此类活动的次数。
我想在矩阵上应用聚类技术,以便将具有相似兴趣和行为的人分组,然后应用更多算法来分析特定组。
我认为我不能直接在矩阵上应用 k-means 或层次聚类,所以我尝试将矩阵转换为 Gower 距离矩阵并在 Gower 距离矩阵上应用 k-medoids 算法。但是,我认为结果是关于对相似性的值进行分组,而不是根据相似性对人进行分组。
我对如何对原始矩阵进行聚类感到困惑。我也对如何开始建立人与人推荐系统感到困惑。
聚类不太适合推荐。
集群c.an 非常大。在最坏的情况下,几乎所有的点都在同一个簇中。那么你还有同样的问题,如何选择推荐的用户。
相反,使用相似性搜索
- 根据共同兴趣推荐最相似的10个用户
- 根据共同好友推荐这10位most.similar用户
有不同的机器学习方法来构建您的好友推荐系统。
如果你只有问题中显示的特征数据,你可以使用无监督方法,例如相似性搜索,就像 Anony 提到的那样。
1) 根据特征,可以使用皮尔逊相关系数、余弦相似度或其他指标来定义用户相似。
2)然后,可以使用K近邻找到前K个最相似的用户作为推荐好友。
如果你已经有了一些友情关系数据,可以使用监督方法,这可能会给你更好的结果。根据已有的友情数据,可以找出哪个特征更重要,赋予更多的权重。您可以使用 MF 或其他方法。那是另一个任务!!!
我有一个社交网络图表,人们可以在其中了解朋友关系、兴趣和参加的活动。我想建立一个推荐系统,可以向人们推荐潜在的朋友。
我正在使用一个矩阵(不确定它是否正确)作为休闲:
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
如您所见,该矩阵是一个混合数据类型矩阵。 Interest 列是二进制数据 {0,1},Event_Type 列是用户参加此类活动的次数。
我想在矩阵上应用聚类技术,以便将具有相似兴趣和行为的人分组,然后应用更多算法来分析特定组。
我认为我不能直接在矩阵上应用 k-means 或层次聚类,所以我尝试将矩阵转换为 Gower 距离矩阵并在 Gower 距离矩阵上应用 k-medoids 算法。但是,我认为结果是关于对相似性的值进行分组,而不是根据相似性对人进行分组。
我对如何对原始矩阵进行聚类感到困惑。我也对如何开始建立人与人推荐系统感到困惑。
聚类不太适合推荐。
集群c.an 非常大。在最坏的情况下,几乎所有的点都在同一个簇中。那么你还有同样的问题,如何选择推荐的用户。
相反,使用相似性搜索
- 根据共同兴趣推荐最相似的10个用户
- 根据共同好友推荐这10位most.similar用户
有不同的机器学习方法来构建您的好友推荐系统。
如果你只有问题中显示的特征数据,你可以使用无监督方法,例如相似性搜索,就像 Anony 提到的那样。
1) 根据特征,可以使用皮尔逊相关系数、余弦相似度或其他指标来定义用户相似。
2)然后,可以使用K近邻找到前K个最相似的用户作为推荐好友。
如果你已经有了一些友情关系数据,可以使用监督方法,这可能会给你更好的结果。根据已有的友情数据,可以找出哪个特征更重要,赋予更多的权重。您可以使用 MF 或其他方法。那是另一个任务!!!