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

使用Yellowbrick的SilhouetteVisualizer可视化AffinityPropagation模型轮廓系数报错求助

问题原因

报错AttributeError: 'AffinityPropagation' object has no attribute 'shape'是因为你调用visualizer.fit(segmentacao)时,传入的是训练好的AffinityPropagation模型对象,但SilhouetteVisualizer的fit方法需要接收特征数据集(而非模型),它内部会尝试访问输入数据的shape属性,模型对象没有这个属性,因此触发错误。

修复方案

将visualizer.fit()的参数替换为你的特征数据集compact即可——可视化工具需要基于原始数据计算轮廓系数,同时使用已训练好的模型生成的聚类标签。

修正后的完整代码
from sklearn.cluster import AffinityPropagation
from yellowbrick.cluster import SilhouetteVisualizer

# 训练AffinityPropagation模型
segmentacao = AffinityPropagation(preference=-1000, max_iter=250)
segmentacao.fit(compact)
labels = segmentacao.predict(compact)

# 初始化可视化工具并传入训练好的模型
visualizer = SilhouetteVisualizer(segmentacao, colors='yellowbrick')

# 传入特征数据集进行可视化计算
visualizer.fit(compact)
visualizer.show()
简化写法(可选)

如果不需要单独保存模型的预测标签,也可以让可视化工具直接完成模型训练和可视化,代码更简洁:

from sklearn.cluster import AffinityPropagation
from yellowbrick.cluster import SilhouetteVisualizer

visualizer = SilhouetteVisualizer(
    AffinityPropagation(preference=-1000, max_iter=250),
    colors='yellowbrick'
)
visualizer.fit(compact)
visualizer.show()

内容的提问来源于stack exchange,提问作者André Luís Lopes da Silva

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 04:54:57