809669515

2018-11-01   阅读量: 896

数据分析师 数据挖掘 机器学习

K-Means聚类

扫码加入数据分析学习群

K-Means聚类旨在将n个对象划分为k个聚类,其中每个对象属于具有最近均值的聚类。该方法产生恰好具有最大可能区别的k个不同簇。导致最大间隔(距离)的最佳簇数k不是先验的,必须根据数据计算。K-Means聚类的目标是最小化总簇内方差,或平方误差函数: 

算法

  1. 将数据聚集到k个 组中,其中k 是预定义的。
  2. 随机选择k 点作为聚类中心。
  3. 根据欧几里德距离函数将对象分配到其最近的聚类中心 。
  4. 计算每个群集中所有对象的质心或平均值。
  5. 重复步骤2,3和4,直到在连续轮次中为每个群集分配相同的点。

K-Means是一种相对有效的方法。但是,我们需要提前指定簇的数量,最终结果对初始化很敏感,并且通常在局部最优处终止。遗憾的是,没有全局理论方法可以找到最佳簇数。一种实用的方法是将多次运行的结果与不同的k进行比较,并根据预定义的标准选择最佳运行结果。通常,大k可能会降低误差但会增加过度拟合的风险。示例:假设我们想要使用他们的年龄(一维空间)将访问者分组到一个网站,如下所示:

n = 19

15,15,16,19,19,20,20,21,22,28,35,40,41,42,43,44,60,61,65

初始簇(随机质心或平均值):

k = 2

c 1 = 16
c 2 = 22

迭代1c1= 15.33

c2  = 36.25

迭代2c1= 18.56

c2  = 45.90

迭代3c1= 19.50

c2= 47.89

迭代4c1= 19.50

c2= 47.89

没有注意到迭代3和4之间的变化。通过使用聚类,已经确定了2组15-28和35-65。质心的初始选择可以影响输出集群,因此算法通常在不同的起始条件下运行多次,以便获得集群应该是什么的公平视图。

0.0000 0 3 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子