<p>You may try to iterate the community detection algorithm (Louvain or other) by running it on the too large communities you first find. This will partition them into smaller ones.</p>
<p>Notice also that Louvain and other community detection algorithms generally do not produce <em>the best</em> partition, but <em>a good</em> partition with respect to a given quality function. In most cases, finding the best partition is NP-hard.</p>
<p>With this in mind, one may include a <em>scale</em> parameter into the quality function, and detect relevant community at different scales: <a href="https://arxiv.org/abs/cs/0608050" rel="nofollow noreferrer">Post-Processing Hierarchical Community Structures: Quality Improvements and Multi-scale View</a></p>
Is there a Community Detection algorithm that has low time complexity such as Louvain, but that penalizes TOO large of communities
<p>I am building a massive network, that is filled with isolated nodes, but also rather large clusters as well. I have used Louvain's algorithm to achieve the best partition - however some communities are too large. I was curious what algorithms (preferably with Python frameworks) have similar run time to Louvain but penalize too large of communities while achieving ideal modularity?</p>