我有一个包含两列和450行的数据框。首先,我必须运行具有不同k值(意味着k个簇)的K-means算法。每次我运行不同的k值时,我都必须计算SSE。我只是给出了数学方程式。通过将每个点的距离平方到其各自的聚类质心,然后将所有内容相加得出SSE。因此,最后我应该为每个k值设置SSE。
我已经到了运行k均值算法的地方:
Data.kemans <- kmeans(data, centers = 3)
如何从此data.kmeans
中获取SSE(平方误差总和)?
答案 0 :(得分:0)
我认为这是由kmeans
返回的。该文档说:
值
kmeans返回“ kmeans”类的对象,该对象具有打印和适合的方法。该列表至少包含以下组件:
(...)
小孩
总平方和。
withinss
簇内平方和的向量,每个簇一个分量。
tot.withinss
集群内的总平方和,即sum(withinss)。
betweenss
簇间平方和,即totss-tot.withinss。
因此,Data.kmeans$withinss
应该会为您提供所需的答案。
答案 1 :(得分:0)
如果您正在使用scikit-learn计算SSE值,那么将有一个内置属性.inertia _。
from sklearn. cluster import KMeans
kmeans = KMeans()
kmeans.fit(your_data)
kmeans.inertia_ #returns the SSE value