【数学建模】-聚类模型学习笔记之Kmeans聚类

学习来源:清风老师

我们可以更加准确的在每个类中单独使用统计模型进行估计、分析或预测;也可以探究不同类之间的相关性和主要差异。
分类是已知类别的,聚类未知。

K-means聚类算法

算法流程

  1. 指定需要划分的簇[cù]的个数K值(类的个数)
  2. 随机地选择K个数据对象作为初始的聚类中心(不一定要是我们的样本点)
  3. 计算其余的各个数据对象到这K个初始聚类中心的距离,把数据对象划归到距离它最近的那个中心所处在的簇类中
  4. 调整新类并且重新计算出新类的中心
  5. 循环步骤三和四,看中心是否收敛(不变),如果收敛或达到迭代次数则停止循环
  6. 结束
    【数学建模】-聚类模型学习笔记之Kmeans聚类_第1张图片
    【数学建模】-聚类模型学习笔记之Kmeans聚类_第2张图片

K-means算法评价

优点:

  • 算法简单、快速。
  • 对处理大数据集,该算法是相对高效率的。

缺点:

  • 要求用户必须事先给出要生成的簇的数目K。
  • 对初值敏感。
  • 对于孤立点数据敏感。

K-means++算法

k-means++算法选择初始聚类中心的基本原则是:初始的聚类中心之间的相互距离要尽可能的远。
只对K-means算法“初始化K个聚类中心” 这一步进行了优化

算法流程

  1. 随机选取一个样本作为第一个聚类中心;
  2. 计算每个样本与当前已有聚类中心的最短距离(即与最近一个聚类中心的距离),这个值越大,表示被选取作为聚类中心的概率较大;最后,用**轮盘法(依据概率大小来进行抽选)**选出下一个聚类中心;
  3. 重复步骤二,直到选出K个聚类中心。选出初始点后,就继续使用标准的K-means算法了。

spss操作

默认K-means++算法
【数学建模】-聚类模型学习笔记之Kmeans聚类_第3张图片
【数学建模】-聚类模型学习笔记之Kmeans聚类_第4张图片

【数学建模】-聚类模型学习笔记之Kmeans聚类_第5张图片
【数学建模】-聚类模型学习笔记之Kmeans聚类_第6张图片
【数学建模】-聚类模型学习笔记之Kmeans聚类_第7张图片

还有K=3,消费分类更明显

K-means算法一些讨论

  • 聚类的个数K值怎么定?
    答:分几类主要取决于个人的经验与感觉,通常的做法是多尝试几个K值,
    看分成几类的结果更好解释,更符合分析目的等。
  • 数据的量纲不一致怎么办?
    答:如果数据的量纲不一样,那么算距离时就没有意义。例如:如果X1
    单位是米,X2单位是吨,用距离公式计算就会出现“米的平方”加上“吨的平方”
    再开平方,最后算出的东西没有数学意义,这就有问题了。
    【数学建模】-聚类模型学习笔记之Kmeans聚类_第8张图片

【数学建模】-聚类模型学习笔记之Kmeans聚类_第9张图片
【数学建模】-聚类模型学习笔记之Kmeans聚类_第10张图片
【数学建模】-聚类模型学习笔记之Kmeans聚类_第11张图片
【数学建模】-聚类模型学习笔记之Kmeans聚类_第12张图片
【数学建模】-聚类模型学习笔记之Kmeans聚类_第13张图片

你可能感兴趣的