Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 属性图上具有簇级约束的约束聚类算法_Python_Constraints_Cluster Analysis_Graph Theory - Fatal编程技术网

Python 属性图上具有簇级约束的约束聚类算法

Python 属性图上具有簇级约束的约束聚类算法,python,constraints,cluster-analysis,graph-theory,Python,Constraints,Cluster Analysis,Graph Theory,我有一个240k节点和550k边的图,每个节点有五个属性,来自稀疏数据集的自动编码器。我希望将图划分为n个簇,这样分区内的属性相似度最大化,分区相互连接,并且其中一个属性的总和不超过任何给定簇的阈值 我试着用一个自动编码器到处乱翻,但在制作一个丢失函数时遇到了问题,这将得到我需要的结果。我还研究了具有连接性约束的Hierarchic集群,但找不到一种方法来优化我的求和约束。在像Louvain这样的图上,社区检测算法也存在同样的问题 如果有人知道解决这个问题的任何方法,我很想听听,最好是已经用Py

我有一个240k节点和550k边的图,每个节点有五个属性,来自稀疏数据集的自动编码器。我希望将图划分为n个簇,这样分区内的属性相似度最大化,分区相互连接,并且其中一个属性的总和不超过任何给定簇的阈值

我试着用一个自动编码器到处乱翻,但在制作一个丢失函数时遇到了问题,这将得到我需要的结果。我还研究了具有连接性约束的Hierarchic集群,但找不到一种方法来优化我的求和约束。在像Louvain这样的图上,社区检测算法也存在同样的问题


如果有人知道解决这个问题的任何方法,我很想听听,最好是已经用Python实现的东西,但如果不是,我可能可以实现我需要的任何算法。谢谢

首先,这个问题很可能是NP难问题,所以你最好做一些贪婪的优化。首先将图形分解为永远无法连接的子集肯定会有所帮助(删除不够相似的节点链接,然后计算连接的组件)。然后对每个组件(希望它们比250k小得多,否则会很倒霉!)运行一个经典的优化器,该优化器允许您指定成本函数。使用整数线性规划可能是一个好主意,并考虑问题的拉格朗日双重版本。

具有分层聚类,一旦你成功地执行了连通性约束,属性相似性不能通过节点之间的距离来表示吗?在任何情况下,有趣的问题是,我想你会在这个问题上找到一个自制的实现。我可以用分层集群实现这一点,但总和约束一直是一个问题。我可以强制它在达到阈值后停止合并群集,但我相当确定,一旦我开始施加该条件,解决方案将不再是最优的。关于最优->你的问题听起来很像NP-(非常)难的问题,所以我不确定这里是否有希望达到真正的最优。但我同意强制执行此条件可能会降低解决方案的质量。您是否尝试将您的问题发布在[computer science stack exchange](stackexchange.com)上?这可能是一个好的举动。