mac*_*oni 2 python k-means scikit-learn
我正在使用 sklearn.cluster KMeans 包并尝试为每个集群获取 SSE。据我了解,kmeans.inertia_将给出所有集群的 SSE 总和。有没有办法获取 sklearn.cluster KMeans 包中每个集群的 SSE?
我有一个包含 7 个属性和 210 个观察值的数据集。簇数为 3,希望计算每个簇的 SSE。
没有直接的方法可以使用KMeans对象来执行此操作。但是,您可以轻松地自己计算每个簇的距离平方和。
import numpy as np
# ...
kmeans = KMeans(n_clusters=3).fit(X)
cluster_centers = [X[kmeans.labels_ == i].mean(axis=0) for i in range(3)]
clusterwise_sse = [0, 0, 0]
for point, label in zip(X, kmeans.labels_):
clusterwise_sse[label] += np.square(point - cluster_centers[label]).sum()
Run Code Online (Sandbox Code Playgroud)
该代码片段并不是最有效的方法,因为我的目标是清楚地呈现这个概念。
| 归档时间: |
|
| 查看次数: |
11207 次 |
| 最近记录: |