K-means
Posted hapyygril
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了K-means相关的知识,希望对你有一定的参考价值。
一、K-means聚类步骤:
(1)选择k个初始聚类中心
(2)计算每个对象与这k个中心各自的距离,按照最小距离原则分配到最邻近聚类
(3)使用每个聚类中的样本均值作为新的聚类中心
(4)重复步骤(2)和(3)直到聚类中心不再变化
(5)结束,得到k个聚类
二、评价聚类的指标:
(1)inertias:是K-Means模型对象的属性,它作为没有真实分类结果标签下的非监督式评估指标。表示样本到最近的聚类中心的距离总和。值越小越好,越小表示样本在类间的分布越集中。
三、确定k的数目:
手肘法的核心指标是SSE(sum of the squared errors,误差平方和)
def cal_k(self):
SSE = [] # 存放每次结果的误差平方和
for k in range(1, self.m+1):
estimator = KMeans(n_clusters=k) # 构造聚类器
estimator.fit(self.data_cluster())
SSE.append(estimator.inertia_)
SSE=DataFrame(SSE)
returns=np.abs(SSE/SSE.shift(1)-1)
returns=returns.values[1:]
mean_k=np.mean(returns)
flag=True
i = 0
while flag:
if returns[i] > mean_k:
i+=1
else:
flag=False
k=i+1
return k
以上是关于K-means的主要内容,如果未能解决你的问题,请参考以下文章