You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python绘制加权二分图遇AmbiguousSolution错误求助

解决二分图AmbiguousSolution错误的方案

错误原因

AmbiguousSolution错误出现是因为你的图是不连通的——存在孤立节点(比如某个国家所有属性都未达标,或某个属性没有国家满足阈值),导致bipartite.sets()无法自动确定整个图的二分划分规则。

可行解决方法

  • 手动构造二分节点集
    既然你明确知道图的两个分部是「国家」和「属性」,直接手动提取即可,无需依赖函数自动推断:

    # 提取所有国家节点
    country_nodes = set(df['Country'].unique())
    # 提取所有属性节点
    attribute_nodes = set(attributes_n)
    

    后续使用二分图相关功能时,直接传入这两个集合即可。

  • 调用函数时指定基准节点
    若一定要用bipartite.sets(),可以传入一个已知属于某一分部的节点作为基准,让函数以此为依据划分整个图:

    # 取第一个国家作为基准节点
    base_node = df['Country'].iloc[0]
    country_set, attribute_set = bipartite.sets(B, top_nodes={base_node})
    
  • 删除孤立节点
    如果孤立节点对分析无意义,可先清理掉,确保图的连通性符合函数要求:

    # 删除所有无连接的孤立节点
    B.remove_nodes_from([node for node in B.nodes() if B.degree(node) == 0])
    # 此时再调用划分函数
    country_set, attribute_set = bipartite.sets(B)
    

内容的提问来源于stack exchange,提问作者Pratiksha Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 16:10:36