K均值聚类算法

Posted 我的技术笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了K均值聚类算法相关的知识,希望对你有一定的参考价值。

1.聚类算法的概述

聚类属于无监督学习。K均值聚类是一种常见的聚类算法。


2.聚类算法要解决的问题

  • 给定一个元素集合。

  • 每个元素有若干个属性。

  • 使用某种算法将这个集合分成K个子集。

  • 要求每个子集内部元素之间的相异度尽可能低。

  • 不同子集的元素相异度尽可能高。


3.元素之间的相异度

给定集合内的两个元素X={x1,x2,…,xn}Y={y1,y2,…,yn}。相异度定义为一个非负实数。元素属性的类型不同,相异度的计算方法也不同。

  • 标量

    • 欧式距离

    • 曼哈顿距离

    • 闵可夫斯基距离

  • 二元变量

    • 取值不同的属性个数/单个元素的属性个数

    • 取值不同的属性个数/(单个元素的属性个数-同取0的属性个数)

  • 分类变量

    • 取值不同的属性个数/单个元素的属性个数

  • 序数变量

    • 将序数变量转换为标量

  • 向量

    • 两个向量的余弦

    • 这是度量相似度

 

4.K均值算法

  1. 从集合中取K个元素,作为K个子集各自的中心。

  2. 分别计算其余元素到这K个元素的相异度,将每个元素划分到相异度最低的子集。

  3. 对这K个子集重新计算各自的中心,即取子集中各个属性的平均数。

  4. 将集合中全部元素按照新的中心重新聚类。

  5. 重新执行上面这一步,直至聚类结果不再变化。


以上是关于K均值聚类算法的主要内容,如果未能解决你的问题,请参考以下文章

数字数据集上的K-均值聚类

K均值聚类算法

三种聚类方法:层次、K均值、密度

k-均值聚类

K-均值算法(K-means algorithm)

「聚类分析」16聚类分析之KMeans算法与K中心点算法