Vin*_*han 5 tags algorithm cluster-analysis
我希望根据他们的标签聚集许多Feed.一个典型的例子是twitter feed.每个Feed都有与之关联的用户定义标签.通过分析标签,是否可以将Feed聚类到不同的组中,并且可以根据如此多的标签来说明这么多的Feed.一个例子是 -
聚类后
这里的聚类纯粹基于标签.是否有任何好的算法来实现这一目标
如果我正确理解了您的问题,您希望将标记聚合在一起,然后根据Feed中的标记将Feed放入这些群集中.
为此,您可以根据标记一起显示的Feed数量在标记之间创建相似性度量.对于你的例子,这将是这样的
#earthquake | #asia | #bad | ...
#earthquake 1 | 1/2 | 2/2
#asia 1/2 | 1 | 1/2
#bad 2/3 | 1/3 | 1
...
Run Code Online (Sandbox Code Playgroud)
在这里,价值(i,j)等于frequency of (i,j)/frequency of (i).
现在,您在标签之间有一个相似性矩阵,几乎可以使用任何适合您需求的聚类算法.因为,在运行算法之前,标签的数量可能非常大并且难以估计簇的数量,我建议使用一些非常快速的快速模块化聚类的分层聚类算法(这里参见一些细节).但是,如果您对要将其分解的群集数量有一些估计,那么Spectral群集也可能很有用(请参阅此处的一些详细信息).
将标记聚类在一起后,可以使用简单的方法将每个订阅源分配给群集.这可以非常简单,例如,计算Feed中每个群集的标记数量,并为群集分配最大匹配标记数量.
如果您对聚类策略很灵活,那么您还可以尝试以类似的方式将Feed聚类在一起,方法是根据提要之间的公共标记数创建提要之间的相似性,然后在相似度矩阵上应用聚类算法.