我如何从k均值算法中获得平方误差和(SSE)?

时间:2018-12-07 11:56:52

标签: r

我有一个包含两列和450行的数据框。首先,我必须运行具有不同k值(意味着k个簇)的K-means算法。每次我运行不同的k值时,我都必须计算SSE。我只是给出了数学方程式。通过将每个点的距离平方到其各自的聚类质心,然后将所有内容相加得出SSE。因此,最后我应该为每个k值设置SSE。

我已经到了运行k均值算法的地方:

Data.kemans <- kmeans(data, centers = 3)

如何从此data.kmeans中获取SSE(平方误差总和)?

2 个答案:

答案 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