展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

肘部法则确认最佳聚类数

  • 案例1
import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets
from sklearn.metrics import silhouette_score
from sklearn.cluster import KMeans
# 生成一些示例数据,你可以替换成你的数据
iris = datasets.load_iris()
x = iris.data
print( type(x))
print(x.shape)
from sklearn.manifold import TSNE
tsne=TSNE()
X=tsne.fit_transform(x)
print(X.shape)
plt.scatter(X[:,0], X[:,1])
# 计算不同聚类数下的簇内平方和
inertia = []
silhouette_scores = []
k_range = range(2, 11)
for k in k_range:
kmeans = KMeans(n_clusters=k, random_state=10).fit(X)
inertia.append(kmeans.inertia_)
silhouette_scores.append(silhouette_score(X, kmeans.labels_))
# 画出肘部法则图
plt.plot(k_range, silhouette_scores, marker='o')
plt.xlabel('Number of clusters')
plt.ylabel('Silhouette Score')
plt.title('Silhouette Score For Each k')
plt.tight_layout()
# 官方给出的分类。[0 1 2]
print( np.unique( datasets.load_iris().target))
plt.show()
  • 控制台打印
<class 'numpy.ndarray'>
(150, 4)
(150, 2)
[0 1 2]
  • 输出
posted @   DogLeftover  阅读(112)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示