浅尝辄止_数学建模(笔记_K-means聚类算法)

一、聚类模型

所谓聚类,就是将样本划分为由类似的对象组成多个类的过程。聚类后,可以更加准确在每个类中单独使用统计模型进行估计、分析或者预测;也可以探究不同类之间的相关性和主要差异。
 
聚类和分类的区别:分类是已知类别的,聚类的类别未知。


二、K-means聚类算法

1.算法的流程步骤

  1. 指定需要划分的簇的个数K值(类的个数);
  2. 随机地选择K个数据对象作为初始地聚类中心;
  3. 计算其余的各个数据对象到这K个初始聚类中心的距离,把数据对象划归到距离它最近的那个中心所处的簇类中;
  4. 调整新类并且重新计算出新类的中心;
  5. 循环步骤三和四,看中心是否收敛(不变),如果收敛或者达到迭代次数,则停止循环。

2.优点

  1. 算法简单、快捷
  2. 对处理大数据集,该算法是相对高效的

3.缺点

  1. 要求用户必须事先给出要生成的簇的数目K
  2. 对初值敏感,不同的初值,对应会有不同的结果
  3. 对孤立点数据敏感

三、K-means++算法

1. 算法的流程步骤

以下步骤实际上只改变了K-means算法流程步骤的第2步。

  1. 指定需要划分的簇的个数K值(类的个数);
  2. 随机选取一个样本作为第一个聚类中心
  3. 计算每个样本与当前已有聚类中心的最短距离(即与最近一个聚类中心的距离),这个值越大,表示被选取作为聚类中心的概率较大;最后,用轮盘法(根据概率大小来进行抽选)选出下一个聚类中心;
  4. 重复步骤二,直到选出K个聚类中心。选出K个初始聚类中心后,就继续使用标准的K-means算法了。
  5. 计算其余的各个数据对象到这K个初始聚类中心的距离,把数据对象划归到距离它最近的那个中心所处的簇类中;
  6. 调整新类并且重新计算出新类的中心;
  7. 循环步骤三和四,看中心是否收敛(不变),如果收敛或者达到迭代次数,则停止循环。

K-means++算法选择初始聚类中心的基本原则是:初始的聚类中心之间的相互距离要尽量远离。


四、SPSS软件求解K-means++算法

导入数据 — 分析 — 分类 — K-均值聚类分析 — 右移自变量和个案标注依据(分类对象)— 填写聚类数(K)— 迭代 — 调整最大迭代次数 — 保存 — 勾选聚类成员、与聚类中心的距离 — 选项 — 勾选初始聚类中心、每个个案的聚类信息 — 确定


五、K-means++算法的一些讨论

1.聚类的个数K值怎么定?

分几类取决于个人的经验和感觉,通常的做法是多尝试几个K值,看分成几类的结果更好解释,更符合分析目的等。


2.数据的量纲不一致怎么办?

  1. 如果数据的量纲不一样,那么算距离时就没有意义,因此需要对数据进行标准化的预处理(先减去均值再除以标准差)
  2. SPSS软件对数据进行标准化的步骤:选中数据 — 分析 — 描述统计 — 描述 — 勾选将标准化值另存为变量

猜你喜欢

转载自blog.csdn.net/ICISTRUE/article/details/108344409