误差平方和SSE聚类手肘图
时间: 2023-06-30 21:03:02 浏览: 215
聚类的手肘方法是一种常用的聚类评估方法,用于确定所选聚类数目的最佳值。该方法通过绘制不同聚类数目下的误差平方和(Sum of Squared Errors, SSE)并选择转折点来确定最佳聚类数。
具体来说,手肘方法首先计算不同聚类数目下的SSE,然后将SSE值绘制成一个曲线图,横坐标为聚类数目,纵坐标为SSE值。随着聚类数目的增加,SSE值会逐渐减小,因为更多的聚类数会使得聚类更加精细,但是当聚类数目超过一定数目时,SSE值的下降速度会变缓,形成一个类似手肘的拐点。
这个手肘点就是最佳聚类数目。因为在这个点之后,增加聚类数目所带来的收益逐渐减少,而增加聚类数目所带来的成本却逐渐增加(比如过拟合等问题)。因此选择手肘点作为最佳聚类数目是一个很好的方法。
以下是一个示例代码:
```python
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
# 构造数据
X = ...
# 选择不同的聚类数目
K = range(1, 10)
SSE = []
for k in K:
kmeans = KMeans(n_clusters=k, random_state=0).fit(X)
SSE.append(kmeans.inertia_)
# 绘制SSE曲线图
plt.plot(K, SSE, 'bx-')
plt.xlabel('k')
plt.ylabel('SSE')
plt.title('Elbow Method For Optimal k')
plt.show()
```
这里的SSE值可以通过KMeans算法的inertia_属性获得,即模型拟合数据时所有样本到其所属聚类中心距离的平方和。
阅读全文