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

肘部法运行报错:x与y维度不匹配,请求排查绘图问题

KMeans肘部法绘图报错解决方案

问题根源

你把绘图代码(plt.plot()、plt.show())放到了for循环内部,导致第一次循环时:

  • range(1,11)生成的x轴数据是10个元素(形状(10,))
  • 但distortions此时只添加了1个聚类的 inertia 值(形状(1,))
    两者维度不匹配,直接触发报错。

修正后的代码

把绘图相关代码移到for循环外面,等所有聚类的 inertia 值都收集完后再统一绘图:

distortions= []
for i in range (1, 11):
  Km = KMeans(n_clusters = i, 
              init= 'k-means++',
              n_init=10,
              max_iter= 300, 
              random_state=0)
  Km.fit(X)
  distortions.append(Km.inertia_)

# 绘图代码移到循环外
plt.plot(range(1, 11), distortions, marker ='o')
plt.xlabel('Number of clusters')
plt.ylabel('Distortion') 
plt.show()

额外说明

  • 循环内只负责计算每个聚类数对应的 inertia 并存入列表
  • 循环结束后,distortions会有10个元素,和range(1,11)的维度完全匹配,绘图就能正常运行

内容的提问来源于stack exchange,提问作者jose acebedo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 19:30:34