python轮廓系数来评估聚类的代码
时间: 2023-11-12 11:08:12 浏览: 41
以下是使用Python计算轮廓系数来评估聚类的示例代码:
```python
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score
from sklearn.datasets import make_blobs
# 生成随机数据集
X, y = make_blobs(n_samples=1000, centers=4, random_state=42)
# 计算轮廓系数的函数
def silhouette(X, k):
kmeans = KMeans(n_clusters=k, random_state=42)
y_pred = kmeans.fit_predict(X)
return silhouette_score(X, y_pred)
# 计算不同k值下的轮廓系数
for k in range(2, 10):
score = silhouette(X, k)
print("k={}, score={:.3f}".format(k, score))
```
在这个示例中,我们使用`make_blobs()`函数创建了一个随机数据集,然后定义了一个`silhouette()`函数来计算给定数据集和聚类数`k`的轮廓系数。最后,我们使用一个循环来计算不同$k$值下的轮廓系数,并打印出结果。
需要注意的是,轮廓系数的取值范围在$[-1, 1]$之间,越接近1表示聚类效果越好。因此,我们可以通过比较不同$k$值下的轮廓系数来选择最优的聚类数。