我正在使用 mcl 对无向图进行聚类。为此,我选择了连接节点的阈值、每条边的相似性度量以及用于调整图形粒度的膨胀参数。我一直在玩这些参数,但到目前为止,我的集群似乎太大了(我做了可视化,建议最大的集群应该被切割成 2 个或更多集群)。因此,我想知道我可以使用哪些其他参数来改进我的聚类(我目前正在使用 mcl 的 scheme 参数来查看提高准确性是否会有所帮助,但是如果还有其他“更具体”的参数可以例如,帮助获得更小的集群,请告诉我)?
1 回答
实际上主要有两点需要考虑。第一个也是最重要的是在 mcl ( http://micans.org/mcl/ ) 本身之外,即网络是如何构建的。我已经在其他地方写过它,但我会在这里重复它,因为它很重要。
如果您有加权相似性,请选择边缘权重(相似性)截止值,以使网络的拓扑变得信息丰富;即太多的边缘或太少的边缘在边缘的缺失/存在结构中产生很少的判别信息。选择它,使得没有边缘连接您认为非常不同的事物,并且边缘连接您认为有些相似和非常相似的事物。在 mcl 的情况下,根据经验,边缘权重在“有点相似”和“非常相似”之间的动态范围应该是一个数量级,即两倍或五倍或十倍,而不是从 0.9 变化到 1.0。当然,可以为 mcl 提供简单的网络,它只会利用边缘的缺失/存在。确保网络不会变得非常密集 -非常粗糙经验法则可能是针对边缘的总数,V * sqrt(V)
如果节点(顶点)的数量为V
,即每个节点平均具有sqrt(V)
邻居的顺序。
以上,网络建设,真的很关键,建议尝试不同的方法。现在,给定一个网络,实际上只有一个 mcl 参数可以改变:膨胀参数(-I
选项)。一组很好的测试值是1.4, 2, 3, 4, 6
.
总之,如果您正在探索,请尝试不同的网络构建方式,利用您对数据的了解使网络成为有意义的表示,并将其与尝试不同的 mcl 膨胀值相结合。