使用k-means聚类facebook用户

时间:2017-07-30 19:19:24

标签: node.js facebook cluster-analysis k-means

我从以下页面获得了用户ID的facebook列表:

Stanford Facebook-Data

如果你查看facebook_combined数据,你会发现它是一个用户连接列表(边缘)。因此,例如用户0与用户1,2,3等有关。

现在我的工作是在数据集中查找群集。

在第一步中,我使用node.js来读取文件并将数据保存在这样的数组中:

array=[[0,1],[0,2], ...]

在第二步中,我使用了一个用于node.js的k-means插件来聚类数据:

Cluster-Plugin

但我不知道结果是否正确,因为现在我得到的是边缘群而不是用户群。

更新:

我正在为节点js尝试马尔可夫实现。然而,Markov插件需要一个邻接矩阵来构建集群。我用java实现了一个算法,将矩阵保存在一个文件中。

也许你有任何其他的建议,我怎么能从边缘获得群集。

1 个答案:

答案 0 :(得分:1)

K-means假设您的输入数据发出R ^ d向量空间。

实际上,它要求数据是这样的,因为计算意味着作为集群中心,因此名称为k-means。

因此,如果您想使用k-means,那么您需要

  1. 每个数据点一行(不是边缘列表)
  2. 一个固定的维度数据空间,其中均值是一个有用的中心(通常,你应该有连续的属性,二进制数据上的平均值没有多大意义),并且最小二乘是一个有意义的优化标准(同样,在二进制数据,最小二乘没有强大的理论支持)
  3. 在您的Faceboook数据上,您可以尝试一些嵌入,但我对可信度感到怀疑。