首页 > 其他 > 详细

K-means

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

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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!