聚类个数的确定

聚类个数范围的确定:从肘部法则到轮廓系数📊

在聚类分析中,确定最佳聚类个数(k)是至关重要的第一步。本文将介绍几种常用的方法,帮助你在合理范围内确定k值。

1.肘部法则(ElbowMethod)🤔

肘部法则通过观察不同k值下的总平方误差(SSE)变化来确定最佳聚类数:

```python
fromsklearn.clusterimportKMeans
importmatplotlib.pyplotasplt

计算不同k值的SSE
sse=\[\]
forkinrange(1,11):
kmeans=KMeans(n_clusters=k,random_state=42)
kmeans.fit(X)
sse.append(kmeans.inertia_)

绘制肘部图
plt.plot(range(1,11),sse,'bx-')
plt.xlabel('Numberofclusters(k)')
plt.ylabel('SSE')
plt.title('ElbowMethod')
plt.show()
```

当SSE下降速度明显变缓时,对应的k值就是"肘部点"👆

2.轮廓系数(SilhouetteScore)🎭

轮廓系数衡量了样本与自身簇和其他簇的相似度:

```python
fromsklearn.metricsimportsilhouette_score

silhouette_scores=\[\]
forkinrange(2,11):
kmeans=KMeans(n_clusters=k,random_state=42)
labels=kmeans.fit_predict(X)
score=silhouette_score(X,labels)
silhouette_scores.append(score)

plt.plot(range(2,11),silhouette_scores,'bx-')
plt.xlabel('Numberofclusters(k)')
plt.ylabel('SilhouetteScore')
plt.title('SilhouetteMethod')
plt.show()
```

选择轮廓系数最高的k值作为最佳聚类数🏆

3.Gap统计量📈

Gap统计量比较实际数据与参考分布的聚类质量差异:

```python
fromgap_statisticimportOptimalK

optimalK=OptimalK()
n_clusters=optimalK(X,cluster_array=np.arange(1,11))
print(f"Optimalnumberofclusters:{n_clusters}")
```

结论🎯

在实际应用中,建议结合多种方法:
-肘部法则提供直观参考👀
-轮廓系数给出量化指标🔢
-Gap统计量提供统计验证📊

通常k的范围可以设置在2-10之间,具体取决于数据规模和业务需求。记住,没有绝对"正确"的k值,只有最适合你分析目的的k值!💡

相关推荐
VIP_CQCRE9 天前
用 Ace Data Cloud 自动把技术内容发布到 CSDN:AI 写作、图片托管、数据回看一站搞定
ai·api·csdn·内容营销·acedatacloud
VIP_CQCRE14 天前
用 Ace Data Cloud 自动化运营 CSDN:AI 写作、配图、发布与数据复盘
ai·自动化·api·csdn·acedatacloud
VIP_CQCRE16 天前
用 Ace Data Cloud 自动发布 CSDN 技术博客:把 AI 内容变成可持续获客入口
ai·自动化·csdn·ace data cloud·技术营销
gis分享者2 个月前
AI数字营销实测体验,营销组件体验
人工智能·csdn·数字营销·体验·实测·营销组件
心之伊始2 个月前
LangChain4j RAG 实战:Java 后端如何把本地文档接入 Embedding 检索链路
java·架构·源码分析·csdn
gis分享者2 个月前
AI数字营销实测体验,产品推广创作体验
人工智能·csdn·产品推广·数字营销·体验
gis分享者2 个月前
AI数字营销实测体验,GEO效果查询功能体验
人工智能·csdn·geo·数字营销·实测体验·效果查询
心之伊始2 个月前
Spring Cloud Gateway RequestRateLimiter 实战:Redis 令牌桶限流从配置到本地压测验证
java·架构·源码分析·csdn
心之伊始3 个月前
MySQL EXPLAIN 执行计划实战:从 type、Extra 到慢 SQL 定位与优化
java·架构·源码分析·csdn
心之伊始3 个月前
Spring Boot Actuator + Micrometer 自定义业务指标:不只是健康检查
java·架构·源码分析·csdn