码迷,mamicode.com
首页 > 其他好文 > 详细

K-means

时间:2018-10-25 16:24:25      阅读:393      评论:0      收藏:0      [点我收藏+]

标签:变化   .data   评价   评估   mat   elf   data   The   flag   

一、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

标签:变化   .data   评价   评估   mat   elf   data   The   flag   

原文地址:https://www.cnblogs.com/hapyygril/p/9850414.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!