使用mcl可以调整哪些参数?

我在使用mcl对无向图进行聚类。为此,我选择了一个阈值,在此阈值以下节点被连接,同时为每条边选择了一种相似性度量,并使用膨胀参数来调整图的粒度。我已经尝试了这些参数的不同组合,但到目前为止,我得到的聚类似乎都太大了(我做了可视化,显示最大的聚类应该被分成两个或更多个聚类)。因此,我想知道还有哪些其他参数可以调整以改进我的聚类(我目前正在尝试mcl的方案参数,看看是否提高准确性会有所帮助,但如果有其他更具体的参数可以帮助得到更小的聚类,请告诉我)?


回答:

主要有两件事需要考虑。首先也是最重要的是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膨胀值。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注