Kmeans量化指标
时间: 2024-02-01 11:10:12 浏览: 20
K-means量化指标是通过计算每个样本点到其所属簇质心的距离之和来评估K-means聚类的效果。常用的量化指标有两种:SSE(Sum of Squared Errors)和轮廓系数(Silhouette Coefficient)。
1. SSE(Sum of Squared Errors):SSE是指每个样本点到其所属簇质心的距离平方和。SSE越小,表示样本点与其所属簇质心的距离越近,聚类效果越好。可以使用K-means算法的`inertia_`属性来获取SSE的值。
2. 轮廓系数(Silhouette Coefficient):轮廓系数是一种综合考虑了样本点与其所属簇内其他样本点的距离和与其他簇的距离的指标。轮廓系数的取值范围在[-1, 1]之间,越接近1表示样本点与其所属簇内其他样本点的距离越近,与其他簇的距离越远,聚类效果越好。可以使用`sklearn.metrics.silhouette_score`函数来计算轮廓系数。
下面是一个使用K-means进行聚类并计算SSE和轮廓系数的示例代码:
```python
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score
# 假设有一个数据集X
# 初始化K-means模型
kmeans = KMeans(n_clusters=K, random_state=0)
# 进行聚类
kmeans.fit(X)
# 获取每个样本点的簇标签
labels = kmeans.labels_
# 获取每个样本点到其所属簇质心的距离平方和(SSE)
sse = kmeans.inertia_
# 计算轮廓系数
silhouette_avg = silhouette_score(X, labels)
print("SSE:", sse)
print("轮廓系数:", silhouette_avg)
```