0

对于一个音乐项目,我想找出用户在听哪些艺术家群体。我从数据库中提取了三列:艺术家的 ID、用户的 ID 以及连接到该艺术家的所有用户流的百分比。例如,来自用户 15 的一半作品属于艺术家 12。

12 | 15 | 0.5

我希望找到一种将组集群分组在一起的方法,例如找出倾向于听艺术家 12 的用户也听 65、74 和 34。

我想知道什么样的方法可以用于这种分组,以及这种方法是否有任何好的来源(Python 或 Ruby 会很棒)。

4

2 回答 2

1

将您的数据想象为一个矩阵,其中用户为行,艺术家为列,每个单元格都包含比率。

一个直接的分析是在(可能非常大的)列向量上使用聚类。查看 python 库scikit-learn。我还可以推荐使用IPython notebook进行交互式数据分析。

您的问题被称为“市场篮子分析”或“亲和力相关性”,请查看用于产品数据分析的最佳 Python 聚类库

于 2013-09-10T10:15:27.953 回答
0

对我来说,这听起来像是一个经典的矩阵分解任务。

使用加权矩阵,而不是二进制矩阵。所以一些快速算法可能不适用,因为它们只支持二进制矩阵。

不要在 Stackoverflow 上询问源代码:询问场外资源(工具、库等)是题外话。

于 2013-09-10T07:05:12.963 回答